scala – Spark:按键对数组中的行进行分组
发布时间:2020-12-16 18:09:21 所属栏目:安全 来源:网络整理
导读:我有一个像这样的火花数据集: key id val1 val2 val31 a a1 a2 a32 a a4 a5 a63 b b1 b2 b34 b b4 b5 b65 b b7 b8 b96 c c1 c2 c3 我想在列表或数组中按id分组所有行,如下所示: (a,([1 a a1 a2 a3],[2 a a4 a5 a6]) ),(b,([3 b b1 b2 b3],[4 b b4 b5 b6],[
我有一个像这样的火花数据集:
key id val1 val2 val3 1 a a1 a2 a3 2 a a4 a5 a6 3 b b1 b2 b3 4 b b4 b5 b6 5 b b7 b8 b9 6 c c1 c2 c3 我想在列表或数组中按id分组所有行,如下所示: (a,([1 a a1 a2 a3],[2 a a4 a5 a6]) ),(b,([3 b b1 b2 b3],[4 b b4 b5 b6],[5 b b7 b8 b9]) ),(c,([6 c c1 c2 c3]) ) 我使用map用右键输出键/值对但我在构建最终键/数组时遇到了麻烦. 任何人都可以帮忙吗? 解决方法
这个怎么样:
import org.apache.spark.sql.functions._ df.withColumn("combined",array("key","id","val1","val2","val3")).groupby("id").agg(collect_list($"combined")) Array函数将列转换为列数组,然后将其转换为带collect_list的简单groupby (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |