【发布时间】:2018-03-18 18:41:09
【问题描述】:
我有一个这样的数据框 df:
---------------------------------------
id | k | v1 | v2 | v3 |
1 |sc1 | ok |null | null |
1 |sc2 | no |null | null |
1 |sc3 | yes |null | null |
1 |sc4 |null |20180318| null |
1 |sc5 |null |null | ["5","2","9"]|
1 |sc6 |null |20180317|null |
1 |sc7 |ok++ |null |null |
2 |sc3 |yes++|null |null |
2 |sc2 |no-- |null |null |
2 |sc7 |ok-- |null |null |
2 |sc4 |null |20180315|null |
3 |sc1 | no |null |null |
3 |sc6 |null |20180313|null |
.
.
我想得到这个结果
-----------------------------------------------------------------------
id| sc1 |sc2 |sc3 |sc4 |sc5 |sc6 |sc7 | sc8 |sc9 | ... |sck
1 |ok |no |yes |20180318|["5","2","9"]|20180317|ok++| | | |
2 | |no--|yes++|20180315| | |ok--| | | .... |
3 |no | | | | |20180313| | | | .... |
.
.
n |ok++ | |yes | |["1","0","1"]| | | |ok++| ... |ok++
--------------------------------------------------------------------------------
所以我尝试使用df.groupby("id").pivot("k"),但没有得到结果,我认为这是因为当我只使用一个 id 时,每个模式变量都可以使用,例如 id==1
| sc1 |sc2 |sc3 |sc4 |sc5 |sc6 |sc7 |
1 |ok |no |yes |20180318|["5","2","9"]|20180317|ok++|
这个问题有解决办法吗?提前致谢
【问题讨论】:
标签: scala apache-spark dataframe group-by pivot