如何在Pyspark Dataframe中筛选出任何列为空的行

3

我相信这个问题已经在stackoverflow上有了,但是我只找到了过滤pyspark数据框中特定列为空的行的方法,而不是任何列为空的方法。

import pandas as pd
import pyspark.sql.functions as f
my_dict = {"column1":list(range(100)),"column2":["a","b","c",None]*25,"column3":["a","b","c","d",None]*20}
my_pandas_df = pd.DataFrame(my_dict)

sparkDf = spark.createDataFrame(my_pandas_df)
sparkDf.show(5)

我试图在DataFrame中包含任何具有空值的行,基本上是相反的操作:包含没有任何列具有空值的行:

enter image description here

sparkDf.na.drop()

1
你的问题不够清楚。你是想找到那些所有列都为空的行,还是想找到所有列都可以为空(任何一列都可以为空)的所有行?提供带有适当结果的示例输出将有助于其他人回答。 - murtihash
sparkDf.na.drop(how='any').show(5) - anky
@murtihash 感谢您指出,我的意思是如果任何一列具有空值,则应包括在内。 - Julien Massardier
1个回答

6

用于包含任何列具有 null 的行:

sparkDf.filter(F.greatest(*[F.col(i).isNull() for i in sparkDf.columns])).show(5)

用于排除相同元素的方式:

sparkDf.na.drop(how='any').show(5)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接