由于使用HIVE查询出来的报表数据会因为源数据的异常导致不可用,这个时候需要根据数据情况修改代码
,下面是利用spark针对几个检查项,将检查结果插入到表中
# -*- coding: utf-8 -*-
from pyspark import SparkContextfrom pyspark import HiveContext
from pyspark.sql import Row
import math
import os,sys
import datetime
import time
reload(sys)
sys.setdefaultencoding('utf-8')
def f_sort(x): #python的排序函数
sort_temp=sorted(x,key=lambda x:x[2],reverse=False)
return sort_temp
def rate_violate(x):
result=[1,""]
if len(x)<=1:
result=[1,""]
else:
for i in range(1,len(x)-1):
if math.floor((float(x[i][1])-float(x[i-1][1]))*1000/float(x[i-1][1]))<>math.floor(float(x[i][0])*10):
return [0,x[i][2]]