当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PySpark SQL Functions regexp_replace方法用法及代码示例


PySpark SQL 函数的regexp_replace(~) 方法将匹配的正则表达式替换为指定的字符串。

参数

1.str | stringColumn

其值将被替换的列。

2. pattern | stringRegex

要替换的正则表达式。

3. replacement | string

要替换 pattern 的字符串值。

返回值

新的 PySpark 列。

例子

考虑以下PySpark DataFrame:

df = spark.createDataFrame([['Alex', 10], ['Mile', 30]], ['name', 'age'])
df.show()



+----+---+
|name|age|
+----+---+
|Alex| 10|
|Mile| 30|
+----+---+

替换特定子字符串

要将子字符串 'le' 替换为 'LE' ,请使用 regexp_replace(~)

from pyspark.sql import functions as F
# Use an alias to assign a new name to the returned column
df.select(F.regexp_replace('name', 'le', 'LE').alias('new_name')).show()



+--------+
|new_name|
+--------+
|    ALEx|
|    MiLE|
+--------+
注意

第二个参数是正则表达式,因此$[等字符将带有特殊含义。为了将这些特殊字符视为文字字符,请使用 \ 字符(例如 \$ )对它们进行转义。

传入 Column 对象

我们还可以传入 Column 对象,而不是通过名称引用列:

df.select(F.regexp_replace(df.name, 'le', 'LE').alias('new_name')).show()



+--------+
|new_name|
+--------+
|    ALEx|
|    MiLE|
+--------+
获取新的PySpark DataFrame

我们可以使用 PySpark DataFrame 的 withColumn(~) 方法来获取具有更新列的新 PySpark DataFrame,如下所示:

df.withColumn('name', F.regexp_replace("name", 'le', 'LE').alias('new_name')).show()



+----+---+
|name|age|
+----+---+
|ALEx| 10|
|MiLE| 30|
+----+---+

使用正则表达式替换特定子字符串

要将仅在末尾出现的子字符串 'le' 替换为 'LE' ,请使用 regexp_replace(~)

from pyspark.sql import functions as F
df.select(F.regexp_replace('name', 'le$', 'LE').alias('new_name')).show()



+--------+
|new_name|
+--------+
|    Alex|
|    MiLE|
+--------+

在这里,我们使用特殊的正则表达式字符'$',它仅匹配出现在字符串末尾的模式。这就是 Alex 中的 'le' 未进行替换的原因。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark SQL Functions | regexp_replace method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。