如何在调用groupBy后返回正常的DataFrame

时间:2017-09-01 21:19:04

标签: apache-spark apache-spark-sql

对于简单的grouping操作,显然返回的类型不再是DataFrame ??

val itemsQtyDf = pkgItemsDf.groupBy($"packageid").withColumn("totalqty",sum("qty"))

我们无法在groupBy之后调用DataFrame操作 - 因为它是GroupedData

Error:(26, 55) value withColumn is not a member of org.apache.spark.sql.GroupedData

那么,如何在分组后让我的DataFrame回来?是否有必要使用DataFrame.agg()而不是

1 个答案:

答案 0 :(得分:2)

仅在没有聚合函数的情况下进行分组意味着您可能希望使用distinct()函数来代替返回DataFrame的函数。但是您的示例显示您需要sum("qty"),因此只需将代码更改为:

pkgItemsDf.groupBy($"packageid").agg(sum("qty").alias("totalqty"))