python - 声明 UDF 时 Spark 出错

标签 python apache-spark pyspark bigdata

我正在尝试创建一个 udf,它在列中获取一个值(数组)并返回一个仅包含唯一元素的数组。请在 Spark (version-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,还需要指定数组内容的类型,eg

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

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

关于python - 声明 UDF 时 Spark 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38983244/

相关文章:

hadoop - Cassandra 查询灵活性

scala - 使用 Scala 类作为 UDF 与 pyspark

apache-spark - Pyspark - 如何进行不区分大小写的数据帧连接?

python - 如何将此 C 代码转换为 Python?

python - 如何提高 Spark 中的小数精度?

scala - 如何解释 RDD.treeAggregate

windows - Pyspark 上 saveAsTextFile() 中命令字符串异常中的(空)条目

python - 如何使用 SWIG 根据 C 函数返回类型返回特定异常?

python - 我在滥用 flush() 调用吗?

python - 将字符串解压缩为扩展字符串