对于简单的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()
而不是
答案 0 :(得分:2)
仅在没有聚合函数的情况下进行分组意味着您可能希望使用distinct()
函数来代替返回DataFrame的函数。但是您的示例显示您需要sum("qty")
,因此只需将代码更改为:
pkgItemsDf.groupBy($"packageid").agg(sum("qty").alias("totalqty"))