我对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 - "
但是没有任何效果!
答案 0 :(得分:2)
您只能提取小的导管单词-"[a-z]+"
。要么
您可以替换大写字母,空格和“ \”-"[A-Z]+\s+-" or "^M.+T\s-"
scala> someDF.withColumn("word",regexp_replace(col("word"),"[A-Z]+\\s+-",""))
scala> res0.show
+------+------+
|number| word|
+------+------+
| 8| bat|
| 64| mouse|
| 0| abc|
+------+------+