ChatGPT解决这个技术问题 Extra ChatGPT

Pyspark 替换 Spark 数据框列中的字符串

我想通过替换子字符串对 Spark Dataframe 列执行一些基本的词干提取。最快的方法是什么?

在我当前的用例中,我有一个要规范化的地址列表。例如这个数据框:

id     address
1       2 foo lane
2       10 bar lane
3       24 pants ln

会成为

id     address
1       2 foo ln
2       10 bar ln
3       24 pants ln
你的 Spark 版本是什么?

D
Daniel de Paula

对于 Spark 1.5 或更高版本,您可以使用 functions 包:

from pyspark.sql.functions import *
newDf = df.withColumn('address', regexp_replace('address', 'lane', 'ln'))

快速解释:

调用函数 withColumn 向数据框中添加(或替换,如果名称存在)一列。

函数 regexp_replace 将通过替换与模式匹配的所有子字符串来生成一个新列。


请记住,regexp_replace 的第一个参数是指要更改的列,第二个是要查找的正则表达式,最后一个是如何替换它。
我可以在管道中使用 regexp_replace 吗?谢谢
我们可以在此代码中更改多个项目吗?
@elham 您可以使用此函数为一列更改适合正则表达式 表达式 的任何值:spark.apache.org/docs/2.2.0/api/R/regexp_replace.html
在 PySpark 中减去两个 string columns within a single dataframe 是如何工作的?
l
loneStar

对于斯卡拉

import org.apache.spark.sql.functions.regexp_replace
import org.apache.spark.sql.functions.col
data.withColumn("addr_new", regexp_replace(col("addr_line"), "\\*", ""))