如何从 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|
+-----+
我有一个字符串列需要过滤。我需要获取所有包含字母或特殊字符的值。
初始列:
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|
+-----+