Spark-使用regexp_replace替换多个组

时间:2019-01-11 00:59:34

标签: regex string scala apache-spark regexp-replace

在Spark中,我有一个数据框,其中一列的数据格式如下:“ he = 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|
+-----------------+----------+

请您帮忙解释一下,我的代码出了什么问题? 谢谢!

0 个答案:

没有答案