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")
使用 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")