我在Spark中有一个数据框
0, 1, 2
我想按sno分组,当我按序列号分组时,结果数据框应为
+------+----------+
|sno | ssn |
+------+----------+
| 123|200000000|
| 789|200000002|
| 123|200000000|
| 123|200000001|
| 894|200000001|
+------+----------+
我是火花的新手,我将如何做
当我将表注册为临时表并通过sql组进行操作时,无法以上述格式获取结果时,如何获取结果?
答案 0 :(得分:2)
按sno分组后,您可以使用collect_set。下面是相同的代码。
//Creating Test Data
val df = Seq((123, 200000000), (789, 200000002), (123, 200000000), (123, 200000001), (894, 200000001))
.toDF("sno", "ssn")
val df1 = df.groupBy("sno")
.agg(collect_set("ssn").as("ssn"))
df1.show(false)
+---+----------------------+
|sno|ssn |
+---+----------------------+
|123|[200000000, 200000001]|
|789|[200000002] |
|894|[200000001] |
+---+----------------------+