apache-spark - 用于 Python 的 Spark 列函数
问题描述
我已经阅读了一些关于 spark“列函数”的文章。它们似乎是接受列参数并返回列类型的标准 UDF 函数。例如
def removeAllWhitespace(col: Column): Column = {
regexp_replace(col, "\\s+", "")
}
在其中一篇文章中指出:“UDF 是 Spark 引擎的黑匣子,而接受 Column 参数并返回 Column 的函数不是 Spark 的黑匣子。”
上面的例子是在 Scala 中。可以在具有相同性能优势的 python 中完成相同的事情吗?
解决方案
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"))
推荐阅读
- javascript - 在映射的详细信息中使用按钮会引发错误“渲染未返回任何内容”
- javascript - 函数返回已解决的承诺而不是数据
- python - Pandas:如何根据来自同一数据帧的数据创建列?
- c - C中使用32位int和四个char数组的XOR加密
- java - org.codehaus.jackson.JsonNode.asText() 中的 NoSuchMethodError 与 Jackson
- apache-kafka - 如何使用spring cloud从kafka中两个服务实例中的所有分区消费
- python - NotImplementedError:不支持文本模式,使用 mode='wb' 并在 s3fs 中管理字节
- forms - 从工作表填充多项选择网格
- c# - 如何从 ASP.NET MVC5 中的过滤器属性调用异步方法
- java - 无法访问主线程上的数据库,因为它可能会长时间锁定 UI 错误