当你使用spark udf时,进行如下操作
@udf(ArrayType(DoubleType()))
def listdivision(alist,blist):
if (np.array(blist).sum() is None)|(np.array(alist).sum() is None):
return None
else:
result=[]
label = np.array(blist)==0
result = np.array(alist)/np.array(blist)
result[label] = 1
return result
其核心就是np.array的除法,当array内部存在array([None])时就会造成这样的报错
所以需要使用np.array(blist).sum() is None进行判断