У меня есть такой фрейм данных, как можно удалить эти специальные символы с помощью spark scala? - PullRequest
0 голосов
/ 02 марта 2020
df.map(x => x.replace("^", "").replace("{", "").replace("}", ""))

выходной файл

name,age,year
aravind,22,1995
venagt,23,1895
raj,23,1955

1 Ответ

0 голосов
/ 02 марта 2020

Чтобы заменить специальные символы в Spark, вам нужно написать символ в следующей форме => "\\ + special_character"

Например, если вы хотите заменить ^, {,} в столбце «имя» вы можете сделать следующее:

df.withColumn("name", regexp_replace(col("name"), "\\^", "")).withColumn("name", regexp_replace(col("name"), "\\{", "")).withColumn("name", regexp_replace(col("name"), "\\}", ""))

Output for the column will be:
+-------+
|name   |
+-------+
|raj    |
|aravind|
|venagt |
+-------+

Если вы хотите сделать выше для всех столбцов в DataFrame, вы можете просто запустить следующий код:

scala> var df = Seq(("^{raj}^","^{23}^","^{1995}^"), ("^{aravind}^","^{22}^","^{1995}^")).toDF("name", "age", "year")

scala> df.show(false)
+-----------+------+--------+
|name       |age   |year    |
+-----------+------+--------+
|^{raj}^    |^{23}^|^{1995}^|
|^{aravind}^|^{22}^|^{1995}^|
+-----------+------+--------+

scala> df.columns.foreach(x => {df = df.withColumn(x, regexp_replace(col(x), "\\^", "")).withColumn(x, regexp_replace(col(x), "\\{", "")).withColumn(x, regexp_replace(col(x), "\\}", ""))})

scala> df.show(false)
+-------+---+----+
|name   |age|year|
+-------+---+----+
|raj    |23 |1995|
|aravind|22 |1995|
+-------+---+----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...