2017-01-31 5 views
0

で単一の行にスパーク:私はスパークでこのような状況を持っているより多くの列

+-----+-----+-----+----------+-----------+-----------+ 
|month|years|id | category|sum(amount)|avg(amount)| 
+-----+-----+-----+----------+-----------+-----------+ 
| 1 | 2015| id_1|  A | 10000 | 2000 | 
| 1 | 2015| id_1|  B | 1000 | 100 | 
| 1 | 2015| id_1|  C | 2000 | 1000 | 
+-----+-----+-----+----------+-----------+-----------+ 

をより多くの行を転置し、私はこれを取得したいと思います:

+-----------------+-----------------------+-----------------------------------------------+ 
|     |  category_A  |  category_B  |  category_C  | 
+-----+-----+-----+-----------+-----------+-----------+-----------+-----------+-----------+ 
|month|years|id |sum(amount)|avg(amount)|sum(amount)|avg(amount)|sum(amount)|avg(amount)| 
+-----+-----+-----+-----------+-----------+-----------+-----------+-----------+-----------+ 
| 1 | 2015| id_1| 10000 | 2000 | 1000 | 100 | 2000 | 1000 | 
+-----+-----+-----+-----------+-----------+-----------+-----------+-----------+-----------+ 

それは可能ですか?

答えて

0

私は、データフレームとピボットを使用して、この解決策を見つけた:

df 
    .groupBy($"month",$"years",$"id") 
    .pivot("category") 
    .agg(sum($"amount"),avg($"amount")) 

それはRDDとソリューション可能ですか?

関連する問題