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
.
- 它们不能用于工作人员,因为没有可以评估它们的上下文。
我定义了一个类似
的函数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
和 returnColumn
. - 它们不能用于工作人员,因为没有可以评估它们的上下文。