从字符串中删除重复字符:Pyspark

问题描述 投票:0回答:1

我想只保留 pyspark 字符串列中的唯一字母。请建议任何不使用 udfs 的解决方案。我需要一个 Pyspark 解决方案,而不是论坛上存在的多个 pythonic 解决方案。谢谢

输入 上校 abcbb12b

输出 上校 abc

我尝试使用 re.sub 但无法使其工作

python pyspark
1个回答
0
投票

我们可以利用正则表达式来实现最终目标。

输入数据框

+--------+
|   value|
+--------+
|abcbb12b|
+--------+

导入必要的包

from pyspark.sql.functions import regexp_replace
  1. 删除非字母
df = df.withColumn("alphabet", regexp_replace("value", "[^a-zA-Z$]", ""))
  1. 删除重复字符
df = df.withColumn("alphabet_set", regexp_replace(col("alphabet"), r"(.)\1+", ""))

输出数据帧

+--------+--------+------------+
|   value|alphabet|alphabet_set|
+--------+--------+------------+
|abcbb12b|  abcbbb|         abc|
+--------+--------+------------+
© www.soinside.com 2019 - 2024. All rights reserved.