Чтобы заменить специальные символы в 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|
+-------+---+----+