首页 > 解决方案 > 按类型从 pyspark 数据框中删除行

问题描述

我在 pyspark 中有包含产品项目的大文件,其中一些是确切的数字,其他包含字符串。我想从数据框中删除所有带有数字的行项目(计算效率高)。

|Product-1| Pj3f|
|Product-2| 12  |
|Product-3| Pj2F|
|Product-4| 20  |

如何按 pyspark 数据框列中的项目类型过滤行?pyspark 过滤器功能似乎没有它的功能。

ķ

标签: dataframeapache-sparkfilterpyspark

解决方案


castint然后仅过滤null值列的列。

  • 或者通过使用.rlike函数

Example:

df.show()
#+---------+-----+
#|  product|descr|
#+---------+-----+
#|Product-1| pj3f|
#|product-2|   12|
#+---------+-----+

df.filter(col("descr").cast("int").isNull()).show()
df.filter(~col("descr").rlike("^([\s\d]+)$")).show()
#+---------+-----+
#|  product|descr|
#+---------+-----+
#|Product-1| pj3f|
#+---------+-----+

推荐阅读