python – 声明UDF时Spark出错

我正在尝试创建一个udf,它在列中获取值(数组)并返回仅包含唯一元素的数组.请参阅Spark中的代码(版本1.6.1):

def uniq_array(col_array):
    x = np.unique(col_array)
    return x

uniq_array_udf = udf(uniq_array,ArrayType())

但是,我不断遇到错误:
TypeError:__ init __()至少需要2个参数(给定1个)

有人可以帮我尽快解决错误吗?

谢谢!

解决方法:

对于ArrayType,还需要指定数组内容的类型,例如

def uniq_array(col_array):
    x = np.unique(col_array)
    return x

uniq_array_udf = udf(uniq_array,ArrayType(IntegerType()))
上一篇:在Python和PySpark中等效的R data.table滚动连接


下一篇:python – 重命名spark数据帧中的嵌套字段