0
我使用星火Dataframes,並有數據幀df
與此類似:星火據幀:如何聚合兩者數值和名義列
id: String | amount: Double | donor: String
--------------------------------------------
1 | 50 | Mary
2 |100 | Michael
1 | 60 | Minnie
1 | 20 | Mark
2 | 55 | Mony
我要聚集我的數據幀中的一個去得到這樣的輸出:
id: String | amount: Double | donor: Seq[String]
--------------------------------------------
1 |130 | {Mary,Minnie,Mark}
2 |155 | {Michael, Mony}
所以我想要做的事,如:
df.groupyBy("id").agg(sum("amount"),_?Seq?_("donor"))
聚合數字之和很容易,但我找不到將文本內容聚合爲序列或數組(或任何類似Iterable類型)的方法。我如何在scala/spark中做到這一點?
編輯:
我要尋找一些火花數據幀或基於RDD功能做字符串的集合。下面提到的函數collect_set
是基於Hive的,我需要特定的依賴關係。但我在我的項目中完全沒有使用Hive。
這工作就像一個魅力,但在哪個班,你找到'collect_set' \'collect_list'?我似乎無法在API中找到這些。除此之外,是否有辦法確保集合只具有不同的值? – Mnemosyne
我發現它並且collect_list是一個Hive函數。因爲我沒有使用Hive,是不是有原生的火花。 – Mnemosyne