首页 > 解决方案 > Pyspark 仅将部分模式转换为另一种模式

问题描述

我不确定这是在做什么,是将整个模式替换为“00”还是仅部分替换有模式匹配的部分,并且模式中只有 oo 转换为 00

PATTERN="(?<=[ip])o{2}(?=([1-9][0-9a-z]))";
Replace_Pat=Verb.withColumn("VERB", F.regexp_replace("VERB",PATTERN,'00'))

我正在尝试仅将两个 o 转换为 2 个零 (00)。所以基本上它必须在文本列动词中识别上面的模式,并且只将那些 o 替换为 0。假设动词列包含一个行短语“这是我在数据中读取 ioo54 的唯一代码”。这里发生了 ioo54 的模式匹配,因此它需要将其转换为“这是我在数据中读取 i0054 的唯一代码”。当我在 python 中运行时-

import re

#Replace all oo in a pattern to 00:

txt = "this is the only code that I read ioo54 in the data"
 PATTERN="(?<=[ip])o{2}(?=([1-9][0-9a-z]))";
x = re.sub(PATTERN, "00", txt)
print(x)

这行得通。您能否确认上述代码(withColumn)是否也执行。如果是,谢谢。否则,请建议如何实现。

标签: pyspark

解决方案


推荐阅读