gpt4 book ai didi

apache-spark - 在 PySpark 数据框中删除包含特定值的行

转载 作者:行者123 更新时间:2023-12-04 00:27:58 25 4
gpt4 key购买 nike

我有一个 pyspark 数据框,如:

A B C
1 不适用 9
4 2 5
6 4 2
5 1 不适用

我想删除包含值“NA”的行。在这种情况下,第一行和最后一行。如何使用 Python 和 Spark 实现这一点?

根据评论更新:
寻找一种解决方案,以删除在许多列中的任何列中具有字符串:NA 的行。

最佳答案

只需使用数据框 filter表达:

l = [('1','NA','9')
,('4','2', '5')
,('6','4','2')
,('5','NA','1')]
df = spark.createDataFrame(l,['A','B','C'])
#The following command requires that the checked columns are strings!
df = df.filter((df.A != 'NA') & (df.B != 'NA') & (df.C != 'NA'))
df.show()

+---+---+---+
| A| B| C|
+---+---+---+
| 4| 2| 5|
| 6| 4| 2|
+---+---+---+

@bluephantom:如果您有数百列,只需通过列表理解生成一个字符串表达式:
#In my example are columns need to be checked
listOfRelevantStringColumns = df.columns
expr = ' and '.join('(%s != "NA")' % col_name for col_name in listOfRelevantStringColumns)
df.filter(expr).show()

关于apache-spark - 在 PySpark 数据框中删除包含特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54843227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com