在 pyspark 中查找和删除匹配的列值

Posted

技术标签:

【中文标题】在 pyspark 中查找和删除匹配的列值【英文标题】:Find and remove matching column values in pyspark 【发布时间】:2018-04-24 01:46:18 【问题描述】:

我有一个 pyspark 数据框,其中列有时会具有与另一列匹配的错误值。它看起来像这样:

| Date         | Latitude      |
| 2017-01-01   | 43.4553       |
| 2017-01-02   | 42.9399       |
| 2017-01-03   | 43.0091       |
| 2017-01-04   | 2017-01-04    |

很明显,最后一个纬度值是不正确的。我需要删除任何和所有这样的行。我考虑过使用.isin(),但我似乎无法让它工作。如果我尝试

df['Date'].isin(['Latitude'])

我明白了:

Column<(Date IN (Latitude))>

有什么建议吗?

【问题讨论】:

【参考方案1】:

如果您更熟悉 SQL 语法,可以在 filter() 中使用 pyspark-sql 条件:

df = df.filter("Date NOT IN (Latitude)")

或者等效地使用pyspark.sql.DataFrame.where():

df = df.where("Date NOT IN (Latitude)")

【讨论】:

以上是关于在 pyspark 中查找和删除匹配的列值的主要内容,如果未能解决你的问题,请参考以下文章

当列表值与Pyspark数据帧中的列值的子字符串匹配时,填充新列

使用 pyspark/pandas 使用列名的模式匹配对具有不同列名的多个列值求和

pyspark 根据列值删除重复行

从具有目标列值的列更新 pyspark 数据框

识别 pyspark 中第一次出现的列值,然后根据它增加另一列

pyspark MlLib:排除一行中的列值