如何使用sparksql函数:regexp\u replace删除特定列值的2个或更多特殊字符?

kx1ctssn  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(1248)

我有一个“地理”专栏,它的价值是^asi^ba
我需要过滤掉字符^a和^b,这样我就可以得到亚洲的输出
我尝试了下面的函数,但将不需要的字符替换为“”,但它不起作用

regexp_replace(GEOGRAPHY, '^A', '' ) as GEOGRAPHY"
regexp_replace(GEOGRAPHY, '^B', '' ) as GEOGRAPHY"
6vl6ewon

6vl6ewon1#

尝试 regex or 使用 | 匹配 ("\\^A|\\^B") .

//sample data
df.show()
//+---------+
//|GEOGRAPHY|
//+---------+
//|A^ASI^BA|
//+---------+
df.withColumn("new_col",regexp_replace(col("GEOGRAPHY"),("\\^A|\\^B"),"")).show()
//+---------+-------+
//|GEOGRAPHY|new_col|
//+---------+-------+
//|A^ASI^BA|  ASIA  |
//+---------+-------+
y1aodyip

y1aodyip2#

只是使用 | 加入 ^A 以及 ^B ```
regexp_replace(GEOGRAPHY, '^A|^B', '') as GEOGRAPHY

附言:如果你的 `^A` 不是一个字符,您需要添加 `\\` 例如 `\\^A` 

相关问题