2016-09-28 3 views
0

Дать следующую структуру данных, как данные в строках быть преобразованы в столбцы. Список имени свойства не определен. т. е. может быть больше свойств, чем определено здесь. Я ищу пример кода в Скале с использованием в Apache SparkДе-нормализовать/преобразовать искровой информационный кадр

UserCode | PropertyName   | PropertyValue 
1   | First Name   | Ram 
1   | Last Name    | Shri 
1   | Address    | Ayodhya 
2   | First Name   | Laxman 
2   | Lastname    | Shri 
2   | Address    | Ayodhya 
2   | Skill     | Archery 
2   | Mariatal Status  | Married 
2   | Age     | 23 
3   | First Name   | Sita 
3   | Last Name    | Devi 
3   | Address    | Ayodhya 

Ожидаемый выходной

UserCode | First Name   | Last Name | Address | Skill | Age 
1   | Ram     | Shri  | Ayodhya |   |  
2   | Laxman    | Shri  | Ayodhya | Archery | 23 
3   | Sita     | Devi  | Ayodhya |   | 
+0

Я изучал этот вопрос «Транспонирование Dataframe с помощью искровой Scala без использования функции Pivot» Я ищу для примера кода –

+0

Я не уверен, что я на самом деле понимаю ваш последний комментарий. – eliasah

+0

Я имею в виду вопрос о SO «Transpose Dataframe с использованием Spark Scala без использования функции Pivot» –

ответ

0

Если вы хорошо с помощью шарнира, это довольно просто.

val df = Seq(
(1, "First Name", "Ram"), 
(1, "Last Name", "Shri"), 
(1, "Address", "Ayodhya"), 
(2, "First Name", "Laxman"), 
(2, "Last Name", "Shri"), 
(2, "Address", "Ayodhya"), 
(2, "Skill", "Archery"), 
(2, "Marital Status", "Married"), 
(2, "Age", "23"), 
(3, "First Name", "Sita"), 
(3, "Last Name", "Devi"), 
(3, "Address", "Ayodhya") 
).toDF("userCode", "propertyName", "propertyValue") 

df.groupBy("userCode").pivot("propertyName").agg(first("propertyValue")).show 

+--------+-------+----+----------+---------+--------------+-------+ 
|userCode|Address| Age|First Name|Last Name|Marital Status| Skill| 
+--------+-------+----+----------+---------+--------------+-------+ 
|  1|Ayodhya|null|  Ram|  Shri|   null| null| 
|  2|Ayodhya| 23| Laxman|  Shri|  Married|Archery| 
|  3|Ayodhya|null|  Sita|  Devi|   null| null| 
+--------+-------+----+----------+---------+--------------+-------+ 
Смежные вопросы