Spark SQL 数据框有

Spark SQL DataFrame HAVING

使用 pyspark,我有一个 Spark 2.2 DataFrame df 模式:country: String, year: Integer, x: Float 对于 AVG(x) > 10 的国家/地区,我想要每个国家/地区多年来 x 的平均值。 以下是有效的:

groups = df.groupBy(df.country).agg(avg('x').alias('avg_x'))
groups.filter(groups.avg_x > 10)

但我很烦不得不定义无用的 groups 变量。

我试过:

df.groupBy(df.country).agg(avg('x').alias('avg_x')).filter(df.avg_x > 10)

但这会导致:AttributeError: 'DataFrame' object has no attribute 'avg_x'

不要使用绑定到 DataFrame 的列(只是没有 avg_x):

from pyspark.sql.functions import col

df.groupBy(df.country).agg(avg('x').alias('avg_x')).filter(col("avg_x") > 10)

df.groupBy(df.country).agg(avg('x').alias('avg_x')).filter("avg_x > 10")