pyspark.sql.function可以在udf中使用吗?

Can pyspark.sql.function be used in udf?

我定义了一个类似

的函数
getDate = udf(lambda x : to_date(x))

当我在

中使用它时
df.select(getDate("time")).show()

我遇到了

File ".../pyspark/sql/functions.py", in to_date
return Column(sc._jvm.functions.to_date(_to_java_column(col)))
AttributeError: 'NoneType' object has no attribute '_jvm'

这是否意味着我不能在我自己的 udf 中使用 pyspark.sql.function?

这不是一个具体的问题,我想知道为什么会这样。

查看错误似乎是 sc 的问题,因为 sc._jvm:'NoneType' object has no attribute '_jvm'

这里sc是NoneType

而且不用写udf,直接用:-

import pyspark.sql.functions as F
df.select(F.to_date(df.time)).show()

来自 pyspark.sql.functions 的函数是 JVM 函数的包装器,设计用于在 pyspark.sql.Column 上运行。你不能使用这些:

  • 转换本地 Python 对象。他们取 Column 和 return Column.
  • 它们不能用于工作人员,因为没有可以评估它们的上下文。