regex模式从pyspark中的单词中删除数值

z5btuh9x  于 2021-07-09  发布在  Spark
关注(0)|答案(1)|浏览(267)

我正在处理pysparkDataframe,我有一列
words (array<string> type) . 要从单词中删除数值和数字值,regex模式应该是什么?

+---+----------------------------------------------+
|id |    words                                     |
+---+----------------------------------------------+
|564|[fhbgtrj5, 345gjhg, ghth578ghu, 5897, fhrfu44]|
+---+----------------------------------------------+

预期产量:

+---+----------------------------------------------+
|id |words                                         |
+---+----------------------------------------------+
|564|               [fhbgtrj, gjhg, ghthghu, fhrfu]|
+---+----------------------------------------------+

请帮忙。

xv8emn3q

xv8emn3q1#

你可以用 transform 一起 regexp_replace 删除数字,并使用 array_remove 删除空条目(来自只包含数字的条目)。

df2 = df.withColumn(
    'words', 
    F.expr("array_remove(transform(words, x -> regexp_replace(x, '[0-9]', '')), '') as words")
)

df2.show(truncate=False)
+---+-------------------------------+
|id |words                          |
+---+-------------------------------+
|564|[fhbgtrj, gjhg, ghthghu, fhrfu]|
+---+-------------------------------+

相关问题