Как заменить символы и символы в Spark?

#scala #apache-spark

#scala #apache-spark

Вопрос:

  ---------- 
| average  |
 ---------- 
|77<@>1    |
 ---------- 
 

Как мне заменить <@> на . ?

Ожидаемый результат:

  ---------- 
| average  |
 ---------- 
|77.1      |
 ---------- 
 

Я попробовал df.withColumn("average", regexp_replace($"average","[<@>]",".")) , и результат был

  ---------- 
| average  |
 ---------- 
|77...1    |
 ---------- 
 

Ответ №1:

Не ставьте квадратные скобки. В этом нет необходимости, так как вы хотите заменить всю строку <@> . Если вы заключите квадратные скобки, каждый символ, соответствующий <, @ или >, будет заменен точкой.

 df.withColumn("average", regexp_replace($"average","<@>",".")).show()

 ------- 
|average|
 ------- 
|   77.1|
 -------