Pyspark UDF AttributeError:' NoneType'对象没有属性' _jvm'

时间:2018-04-13 16:18:48

标签: python-3.x python-2.7 apache-spark pyspark user-defined-functions

我有一个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"]))

我传递一个整数的数据帧列,它返回一个整数的数组。

E.g。 4 --> [4,4,4,4]

直到我们从Python 2.7升级并升级我们的EMR版本(我相信使用Pyspark 2.3)它才有效。

任何人都知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

看起来这与在较新版本中对UDF所做的改进有关(或者更确切地说,旧语法的弃用)。改变udf装饰器对我有用。 @F.udf("array<int>") - &gt; @F.udf(ArrayType(IntegerType()))