Как удалить 2 или более специальных символа из определенного значения столбца с помощью функции spark sql: regexp_replace? - PullRequest
1 голос
/ 06 августа 2020

У меня есть столбец «ГЕОГРАФИЯ», имеющий значение AS ^ ASI ^ BA

Мне нужно отфильтровать символы ^ A и ^ B, чтобы получить результат как ASIA

Я попробовал функцию ниже, но заменил ненужные символы на '', но она не работает

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

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Попробуйте с 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  |
//+---------+-------+
0 голосов
/ 06 августа 2020

Просто используйте |, чтобы присоединиться к ^A и ^B

regexp_replace(GEOGRAPHY, '^A|^B', '') as GEOGRAPHY

ps: если ваш ^A не один символ, вам нужно добавить \\, например \\^A

...