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


Python PySpark SQL Functions translate方法用法及代碼示例


PySpark SQL 函數的 translate(~) 方法將指定字符替換為所需字符。

參數

1.srcCol | stringColumn

要執行操作的列。

2. matching | string

要替換的字符。

3. replace | string

要替換 matching 的字符。

返回值

新的 PySpark 列。

例子

考慮以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 20], ["Bob", 30], ["Cathy", 40]], ["name", "age"])
df.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 30|
|Cathy| 40|
+-----+---+

替換PySpark列中的字符

假設我們想要進行以下字符替換:

A -> #
e -> @
o -> %

我們可以使用 translate(~) 方法執行這些字符替換:

import pyspark.sql.functions as F
df.select(F.translate("name", "Aeo", "#@%")).show()



+-------------------------+
|translate(name, Aeo, #@%)|
+-------------------------+
|                     #l@x|
|                      B%b|
|                    Cathy|
+-------------------------+

請注意,我們可以使用 withColumn(~) 方法獲取帶有已翻譯列的新 PySpark DataFrame:

df_new = df.withColumn("name", F.translate("name", "Aeo", "#@%"))
df_new.show()



+-----+---+
| name|age|
+-----+---+
| #l@x| 20|
|  B%b| 30|
|Cathy| 40|
+-----+---+

最後,請注意,為 replace 參數指定較少的字符將導致刪除 matching 中的相應字符:

df.select(F.translate("name", "Aeo", "#")).show()



+-----------------------+
|translate(name, Aeo, #)|
+-----------------------+
|                    #lx|
|                     Bb|
|                  Cathy|
+-----------------------+

此處,字符 eo 被刪除,而 A 被替換為 #

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark SQL Functions | translate method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。