[英]Apache Spark Dataframe Groupby agg() for multiple columns
[英]apache spark agg( ) function
對於示例數據scholor
,
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 */
+---+---------+
|age|sum(base)|
+---+---------+
agg()
是否需要任何可變參數作為參數? agg()
需要什么?
提前致謝。
為了寫入.sum
這個方法必須存在。 它在 API 上進行了硬編碼。 使用.agg
您可以提供其他聚合函數, sum("column")
只是其中之一。
從agg
的源代碼來看,“ds.agg(...) 是 ds.groupBy().agg(...)”的簡寫。
聚合函數avg
、 max
、 min
、 sum
和count
不是可以在 DataFrame 上調用的方法:
scala> my_df.min("column")
<console> error: value min is not a member of org.apache.spark.sql.DataFrame
agg
是一個 DataFrame 方法,它接受這些聚合函數作為參數:
scala> my_df.agg(min("column"))
res0: org.apache.spark.sql.DataFrame = [min(column): double]
在groupBy()
上調用groupBy()
會返回一個 RelationalGroupedDataset,它具有這些聚合函數作為方法( groupBy
源代碼):
scala> my_df.groupBy().min("column")
res1: org.apache.spark.sql.DataFrame = [min(column): double]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.