簡體   English   中英

當列中並非所有值都存在時,是否可以通過Spark的數據框分組?

[英]Is it possible to groupBy a Spark's dataframe when not all values are present in column?

例如,如果我有以下數據框

val tempDF=Seq(("a",2),("b",1),("a",3)).toDF("letter","value")

scala> tempDF.show()
+------+-----+
|letter|value|
+------+-----+
|     a|    2|
|     b|    1|
|     a|    3|
+------+-----+

我想執行groupBy列上操作letter但我們知道,有可能是另一封信c列不存在letter 通常我會

tempDF.groupBy("letter").sum()

scala> tempDF.groupBy("letter").sum().show()
+------+----------+                                                               
|letter|sum(value)|
+------+----------+
|     a|         5|
|     b|         1|
+------+----------+

但我想要這樣的事情:

+------+----------+                                                             
|letter|sum(value)|
+------+----------+
|     a|         5|
|     b|         1|
|     c|         0|
+------+----------+

是否可以在不以某種方式將字母c添加到數據幀的情況下執行此操作? 我的意思是,列表中可能有很多數據框,但我不知道每個數據框缺少哪些字母(如果有的話),相反,我確實知道應該為每個數據框顯示的整個字母列表。

如果您已經知道所有可能的值,請創建一個單獨的(通用)數據集,其“值”為0。然后將其與任何tempDF一起添加以添加缺少的字母。 然后對最終數據集執行groupBy。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM