我已经阅读了几篇关于Spark“列函数”的文章。它们似乎是标准的UDF函数,它们接受列参数并返回列类型。例如
def removeAllWhitespace(col: Column): Column = {
regexp_replace(col, "\\s+", "")
}
其中一篇文章指出:“ UDF是Spark引擎的黑匣子,而采用Column参数并返回Column的函数不是Spark的黑匣子。”
上面的示例在Scala中。可以在python中完成具有相同性能优势的事情吗?
答案 0 :(得分:0)
从pyspark.sql.functions
组成对象:
from pyspark.sql.functions import regexp_replace
def remove_all_whitespace(col):
return regexp_replace(col, "\\s+", "")
用法:
df = spark.createDataFrame(["fo oo oo ooo"], "string")
df.select(remove_all_whitespace("value"))