如何在pyspark中删除具有大于x Null值的行

时间:2019-11-19 11:08:03

标签: pyspark null

我在删除数据框中包含大于null的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,但是并没有改变。

1 个答案:

答案 0 :(得分:0)

我意识到drop.na函数确实起作用

发生的事情是该文件最初是通过Pandas读取的,而在Pandas使用nan,NaT有时是“-”的情况下,我在将其他Null之类的值转换为Null之前放了drop na函数。

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)```