如何从 Pyspark Dataframe 的字符串列中过滤字母值?

How to filter alphabetic values from a String column in Pyspark Dataframe?

我有一个字符串列需要过滤。我需要获取所有包含字母或特殊字符的值。

初始列:

id
12345
23456
3940A
19045
2BB56
3(40A

预期输出:

id
3940A
2BB56
3(40A

TIA

问题很模糊,所以这是我能给出的最佳答案:

df_filtered = df.filter(any(not c.isdigit() for c in df.id))

只需简单的数字正则表达式即可解决您的问题。 ^\d+$ 将捕获所有完全为数字的值。

from pyspark.sql import functions as F

df.where(F.regexp_extract('id', '^\d+$', 0) == '').show()

+-----+
|   id|
+-----+
|3940A|
|2BB56|
|3(401|
+-----+