如何从 Pyspark Dataframe 中的字符串列中过滤字母值?
Posted
技术标签:
【中文标题】如何从 Pyspark Dataframe 中的字符串列中过滤字母值?【英文标题】:How to filter alphabetic values from a String column in Pyspark Dataframe? 【发布时间】:2021-12-02 19:47:16 【问题描述】:我有一个需要过滤的字符串列。我需要获取所有包含字母或特殊字符的值。
初始列:
id |
---|
12345 |
23456 |
3940A |
19045 |
2BB56 |
3(40A |
预期输出:
id |
---|
3940A |
2BB56 |
3(40A |
TIA
【问题讨论】:
【参考方案1】:只需简单的数字正则表达式即可解决您的问题。 ^\d+$
将捕获所有完全是数字的值。
from pyspark.sql import functions as F
df.where(F.regexp_extract('id', '^\d+$', 0) == '').show()
+-----+
| id|
+-----+
|3940A|
|2BB56|
|3(401|
+-----+
【讨论】:
【参考方案2】:这个问题很模糊,所以这是我能给出的最佳答案:
df_filtered = df.filter(any(not c.isdigit() for c in df.id))
【讨论】:
以上是关于如何从 Pyspark Dataframe 中的字符串列中过滤字母值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在多列上旋转 PySpark 中的 DataFrame?
如何从 Python 循环创建 PySpark DataFrame
从 PySpark DataFrame 中的列表列表中删除列表