【发布时间】:2018-04-13 16:18:48
【问题描述】:
我有一个udf函数:
@staticmethod
@F.udf("array<int>")
def create_users_array(val):
""" Takes column of ints, returns column of arrays containing ints. """
return [val for _ in range(val)]
我这样称呼它:
df.withColumn("myArray", create_users_array(df["myNumber"]))
我向它传递一个整数数据框列,它返回该整数的数组。
例如
4 --> [4,4,4,4]
在我们从 Python 2.7 升级并升级我们的 EMR 版本(我相信它使用 Pyspark 2.3)之前它一直有效
有人知道这是什么原因吗?
【问题讨论】:
-
请发帖minimal reproducible example。看起来您至少混合了不同的
DataFrames(df_agg和df)并且使用类需要非常小心。并且udf你发布的单独工作正常。 -
抱歉,错误地复制了代码(将
df_agg更改为df) -
这段代码仍然无法重现。
-
@user9613318 好吧,您必须设置一个与我的配置相同的 EMR 集群,所以它不容易“重现”。不过我修好了;在下面回答。
标签: python-3.x python-2.7 apache-spark pyspark user-defined-functions