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