对于简单的grouping
操作,返回的类型显然不再是数据帧??
val itemsQtyDf = pkgItemsDf.groupBy($"packageid").withColumn("totalqty",sum("qty"))
但是,我们不能在groupBy
后调用数据帧操作 - 因为它是一个GroupedData
:
Error:(26, 55) value withColumn is not a member of org.apache.spark.sql.GroupedData
那么,如何在分组后找回我的DataFrame
呢? 是否有必要改用DataFrame.agg()
?
仅分组而不使用聚合函数意味着您可能希望改用返回数据帧的distinct()
函数。但是你的例子表明你想要sum("qty")
,所以只需将你的代码改为这样:
pkgItemsDf.groupBy($"packageid").agg(sum("qty").alias("totalqty"))