按组从聚合函数创建新列

Create new column from agg function by group

我用下面的代码将一个大数据集汇总成聚合级别,这样我就可以画图了。

a = b.groupBy("year","month").agg(sum("dollar")/sum("value").alias("pct"))

但是调用a的列'pct时,出现如下错误:

Py4JJavaError: An error occurred while calling o16779.select.
: org.apache.spark.sql.AnalysisException: cannot resolve '`pct`' given input columns:

你知道如何在 agg 函数下创建新列 'pct' 以便我以后使用吗?

尝试将您的部门包含在 () 中,然后执行 .alias()

a = b.groupBy("year","month").agg((sum("dollar")/sum("value")).alias("pct"))

#now you can select pct column from a
a.select("pct").show()