2017-09-26 71 views
0

我的本意是做基本的SQL怎樣的火花數據幀GROUPBY內做COUNT(*)

select shipgrp, shipstatus, count(*) cnt 
    from shipstatus group by shipgrp, shipstatus 

,我已經看到了火花dataframes的例子包括由其他列彙總相當於:例如

  df.groupBy($"shipgrp", $"shipstatus").agg(sum($"quantity") 

但是,沒有其它的列需要在上面顯示我的情況。那麼這裏的語法和/或方法調用組合是什麼?

回答

3

您同樣可以做到count("*")火花agg功能:

df.groupBy("shipgrp", "shipstatus").agg(count("*").as("cnt")) 

val df = Seq(("a", 1), ("a", 1), ("b", 2), ("b", 3)).toDF("A", "B") 

df.groupBy("A", "B").agg(count("*").as("cnt")).show 
+---+---+---+ 
| A| B|cnt| 
+---+---+---+ 
| b| 2| 1| 
| a| 1| 2| 
| b| 3| 1| 
+---+---+---+ 
+1

THX - 適合我的需要在這裏 – javadba