Sum聚合在空数据框上运行时返回null



我试图在下面运行查询:

df.filter(col("id") == id).agg(
F.sum(col("count")).alias("count")
)

在上面的例子中,对于初始运行df将是一个空数据帧,因此filter将把count赋值为0。但是当sum aggregation在上面运行时,它会给我result_df (count 1)它看起来像这样:+-----------+|计数+-----------+零| |+-----------+

我想让result_df的大小为0。有人能帮忙找出我做错了什么吗?

我尝试更改"count"的数据类型列也要长,但没有帮助。

我想你可以用na。下降:na。删除示例

这里有一个类似的例子,添加了na.drop

from pyspark.sql.functions import col
from pyspark.sql.functions import lit
df = spark.createDataFrame(
[("APPLE", "1"),
("APPLE", "2"),
("GRAPE", "3"),
("BANANA", "4"),
("BANANA", "5")],
["id", "count"]
)
df.filter(col("id") == F.lit("WRONG_ID_GIVING_EMPTY_DF")).agg(
F.sum(col("count")).alias("count")
).na.drop().show()

结果:

+-----+
|count|
+-----+
+-----+

最新更新