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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。