小编Pre*_*yas的帖子

Spark Error:构造ClassDict的预期零参数(对于numpy.core.multiarray._reconstruct)

我在Spark中有一个数据框,其中一个列包含一个数组.现在,我编写了一个单独的UDF,它将数组转换为另一个只有不同值的数组.见下面的例子:

例:[24,23,27,23]应转换为[24,23,27 ] 代码:

def uniq_array(col_array):
    x = np.unique(col_array)
    return x
uniq_array_udf = udf(uniq_array,ArrayType(IntegerType()))

Df3 = Df2.withColumn("age_array_unique",uniq_array_udf(Df2.age_array))
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,Df2.age_array是我在其上应用UDF以获取不同列的数组,该列"age_array_unique"应该只包含数组中的唯一值.

但是,只要我运行该命令Df3.show(),我就会收到错误:

net.razorvine.pickle.PickleException:构造ClassDict的预期零参数(对于numpy.core.multiarray._reconstruct)

任何人都可以让我知道为什么会这样吗?

谢谢!

arrays user-defined-functions apache-spark apache-spark-sql pyspark

31
推荐指数
3
解决办法
2万
查看次数

声明UDF时Spark出错

我正在尝试创建一个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())
Run Code Online (Sandbox Code Playgroud)

但是,我不断遇到错误: TypeError: __init__() takes at least 2 arguments (1 given)

谁能帮助我尽快解决错误?

谢谢!

python bigdata apache-spark pyspark

4
推荐指数
1
解决办法
1543
查看次数

我怎样才能使用R将英语单词(例如:'run'和'ran')语义化,以使它们全部处于同一时态?

我希望将英语单词语义化,使得所有单词都转换为相同的时态.例如:

c("ran","run","running") 
Run Code Online (Sandbox Code Playgroud)

应该成为c("run","run","run").

我已经探索了R包,如tm,wordnet,RTextTools和Snowball C; 但所有这些都会产生输出c("ran","run","run").如您所见,它们不会将"运行"转换为"运行".

nlp r text-mining string-matching lemmatization

1
推荐指数
1
解决办法
416
查看次数