Scala apachespark agg()函数
对于示例数据帧Scala apachespark agg()函数,scala,apache-spark-sql,Scala,Apache Spark Sql,对于示例数据帧或 scala> scholor.show | id| name|age|sal|base| 对于上面的,下面的,给出相同的输出。那么agg()的用途是什么呢。这只是名字 scala> scholor.groupBy("age").sum("base").show /*with out agg */ scala> scholor.groupBy("age").agg(sum("base")).show /* with agg */
或
scala> scholor.show
| id| name|age|sal|base|
对于上面的,下面的,给出相同的输出。那么agg()的用途是什么呢。这只是名字
scala> scholor.groupBy("age").sum("base").show /*with out agg */
scala> scholor.groupBy("age").agg(sum("base")).show /* with agg */
+---+---------+
|年龄|总和(基数)|
+---+---------+
agg()
是否需要任何varargs作为参数?
agg()
需要什么
提前感谢。为了编写。sum
此方法必须存在。它是在API上硬编码的。使用.agg
可以提供其他聚合函数,sum(“column”)
只是其中之一。在foragg
中,“ds.agg(…)是ds.groupBy().agg(…)的缩写。”
聚合函数avg
、max
、min
、sum
和count
不是可以在数据帧上调用的方法:
scala> my_df.min("column")
<console> error: value min is not a member of org.apache.spark.sql.DataFrame
在数据帧上调用groupBy()
将返回一个RelationalGroupedDataset,该数据集将这些聚合函数作为方法(的源代码):
你需要做什么?结果是按年龄分组的基数总和。这已经是一个聚合了。@JoostdenBoer:是的。总和、最小值、最大值、平均值等。。。。已经存在聚合函数。那么为什么DataFrameAPI提供agg()方法呢。我想,这意味着。。。。寻找那个东西!!
scala> my_df.agg(min("column"))
res0: org.apache.spark.sql.DataFrame = [min(column): double]
scala> my_df.groupBy().min("column")
res1: org.apache.spark.sql.DataFrame = [min(column): double]