在scala中进行Regex以从数据帧列中的字符串中删除子字符串



我对scala非常陌生,需要从数据帧列中的字符串中删除子字符串:

所以数据帧看起来像:

val someDF = Seq(
(8, "MAT - bat"),
(64, "MDT - mouse"),
(0,   "MAT - abc")
).toDF("number", "word")

我需要从单词列中删除"MAT-"、"MDT-",并需要获得如下结果的数据帧:

|number| word|
+------+-----+
|     8|  bat|
|    64|mouse|
|     0|  abc|
+------+-----+

有谁能帮我拿这个吗。我只是想借助"\AM[a-zA-Z]T - "

但什么都不起作用!!

您只能提取小的导管单词-"[a-z]+"。或您可以替换大写字母、空格和"\"-"[A-Z]+s+-" or "^M.+Ts-"

scala> someDF.withColumn("word",regexp_replace(col("word"),"[A-Z]+\s+-",""))
scala> res0.show
+------+------+
|number|  word|
+------+------+
|     8|   bat|
|    64| mouse|
|     0|   abc|
+------+------+

最新更新