mor*_*ime 2 user-defined-functions python-2.7 python-3.x apache-spark pyspark
我有一个 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)]
Run Code Online (Sandbox Code Playgroud)
我这样称呼它:
df.withColumn("myArray", create_users_array(df["myNumber"]))
Run Code Online (Sandbox Code Playgroud)
我向它传递一个整数数据帧列,它返回一个该整数的数组。
例如
4 --> [4,4,4,4]
它一直在工作,直到我们从 Python 2.7 升级,并升级了我们的 EMR 版本(我相信它使用 Pyspark 2.3)
有谁知道是什么原因造成的?
看起来这与较新版本中对 UDF 所做的改进(或者更确切地说,旧语法的弃用)有关。更改 udf 装饰器对我有用。@F.udf("array<int>")-->@F.udf(ArrayType(IntegerType()))
| 归档时间: |
|
| 查看次数: |
2889 次 |
| 最近记录: |