Apache spark Spark:首先按列分组,如果特定列为空,则删除该组
熊猫代码Apache spark Spark:首先按列分组,如果特定列为空,则删除该组,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,熊猫代码 df=df.groupby('col1').filter(lambda g: ~ (g.col2.isnull()).all()) 使用col1创建第一个组,如果col2中的所有元素都为null,则删除组。 我尝试过以下几点: Pyspark df.groupBy("col1").filter(~df.col2.isNotNull().all()) 您可以对每个组执行非空计数,并使用筛选器删除计数为0的行: # example dataframe df.show
df=df.groupby('col1').filter(lambda g: ~ (g.col2.isnull()).all())
使用col1创建第一个组,如果col2中的所有元素都为null,则删除组。
我尝试过以下几点:
Pyspark
df.groupBy("col1").filter(~df.col2.isNotNull().all())
您可以对每个组执行非空计数,并使用筛选器删除计数为0的行:
# example dataframe
df.show()
+----+----+
|col1|col2|
+----+----+
| 1|null|
| 1|null|
| 2| 1|
| 2|null|
| 3| 1|
+----+----+
from pyspark.sql import functions as F, Window
df2 = df.withColumn(
'not_null',
F.count('col2').over(Window.partitionBy('col1'))
).filter('not_null != 0').drop('not_null')
df2.show()
+----+----+
|col1|col2|
+----+----+
| 3| 1|
| 2| 1|
| 2|null|
+----+----+