如何在pyspark中删除空值超过x的行



我在删除数据帧中的空值超过na_threshold的行时遇到了一些问题

na_threshold=2
df3=df3.dropna(thresh=len(df3.columns) - na_threshold)

当我运行时

df_null = df3.where(reduce(lambda x, y: x | y, (f.col(x).isNull() for x in df3.columns)))

df_null是一个具有1行的数据帧条目,其中只有一列具有空值

我试过增加na_threshold的值,但没有什么不同。

我已经意识到drop.na函数确实可以

发生的事情是,该文件最初是用Pandas读取的,我在将其他类似Null的值转换为Null之前放入了drop-na函数,因为Pandas使用nan、NaT,有时还使用"-">

for column in columns:
df3 = df3.withColumn(column,when((col(column)=='nan'),None).otherwise(F.col(column)))    
df3 = df3.withColumn(column,when((col(column)=='NaT'),None).otherwise(F.col(column))) 
df3 = df3.withColumn(column,when((col(column)=='-'),None).otherwise(F.col(column)))
na_threshold=2
df3=df3.dropna(thresh=len(df3.columns) - na_threshold)```

相关内容

  • 没有找到相关文章

最新更新