В Spark у меня есть фрейм данных с одним столбцом, имеющим данные в следующем формате: « он = 1she = 2it = 3me = 4 ». Я хочу преобразовать этот столбец в формат " 1-2-3-4 ".
val rawDF = Seq(
("he=1she=2it=3me=4"),
("he=3she=5it=9me=7")
).toDF("raw")
val newDF = rawDF.withColumn("converted", regexp_replace($"raw", """[\D]*(\d*)[\D]*(\d*)[\D]*(\d*)[\D]*(\d*)""", """$1-$2-$3-$4"""))
Тогда я получил результат с добавленными '- в конце. Я не знаю, почему это произошло.
+-----------------+----------+
| raw| converted|
+-----------------+----------+
|he=1she=2it=3me=4|1-2-3-4---|
|he=3she=5it=9me=7|3-5-9-7---|
+-----------------+----------+
Мой ожидаемый результат
+-----------------+----------+
| raw| converted|
+-----------------+----------+
|he=1she=2it=3me=4| 1-2-3-4|
|he=3she=5it=9me=7| 3-5-9-7|
+-----------------+----------+
Не могли бы вы помочь объяснить, что случилось с моим кодом?
Спасибо!