我有一个python函数,例如:
def blank_as_null(x):
return when(col(x) != "", col(x)).otherwise(None)
我正在使用此功能,而没有按照文档:http://spark.apache.org/docs/2.2.0/api/python/pyspark.sql.html或视频:https://youtu.be/AsW0QzbYVow?t=42m33s中的建议运行udf(blank_as_null, StringType())
(在42:33,您可以看到调用{{ 1}}函数)
然后我做类似的事情:
udf
首先注册python函数会有什么好处吗?在什么情况下注册受益?什么时候没关系?还是在后台自动完成注册?
答案 0 :(得分:2)
我认为您正在混合两种不同的转换:PySpark API转换和UDF:
when
,otherwise
等)中使用的。出于性能方面的考虑,您应该始终将目标放在第一种类型的转换上,但是如果您尝试使用Spark API实现的转换不可行,则唯一的选择就是UDF。