сгруппировать по фрейму данных в нужный формат в определенном столбце - PullRequest
1 голос
/ 17 марта 2019

у меня есть датафрейм в спарке

+------+----------+
|sno   | ssn     |
+------+----------+
|   123|200000000|         
|   789|200000002|         
|   123|200000000|         
|   123|200000001|         
|   894|200000001|          
+------+----------+

я хотел сгруппировать по sno, и когда я группирую по серийному номеру, результирующий фрейм данных должен быть

+------+----------+---------
|sno   | ssn               |
+------+----------+---------
|   123|200000000,200000001|         
|   789|200000002          |         
|   894|200000001          |          
+------+----------+--------|

Я новичок в спарки как мне сделать это

, когда я регистрирую таблицу как временную таблицу и создаю группу sql, так как я не могу получить результаты в вышеуказанном формате, как я могу получить результаты?

1 Ответ

2 голосов
/ 17 марта 2019

Вы можете использовать collect_set после группировки по sno. Ниже приведен код для того же.

//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]           |
+---+----------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...