我正在尝试创建一个udf,该udf在列中使用value(array)并返回仅包含唯一元素的数组。请参阅以下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__() takes at least 2 arguments (1 given)
谁能帮我尽快解决错误?

谢谢!

最佳答案

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

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

uniq_array_udf = udf(uniq_array,ArrayType(IntegerType()))

10-06 00:02