當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。