如何将一维数据转移到两个二维数据

时间:2016-07-16 02:19:45

标签: apache-spark

我有这样的数据:

 2014 a 1
 2015 b 2
 2014 a 2
 2015 c 4
 2014 b 2

如何将其转移到:

       a  b  c
 2014  3  2  0
 2015  0  2  4
在Spark中

。 感谢。

1 个答案:

答案 0 :(得分:2)

这是数据透视表的原型应用

df.show()
//
//+------+------+----+
//|letter|number|year|
//+------+------+----+
//|     a|     1|2014|
//|     b|     2|2015|
//|     a|     2|2014|
//|     c|     4|2015|
//|     b|     2|2014|
//+------+------+----+
val pivot  = df.groupBy("year")
 .pivot("letter")
 .sum("number")
 .na.fill(0,Seq("a")) 
 .na.fill(0,Seq("c"))

 pivot.show()
//+----+---+---+---+
//|year|  a|  b|  c|
//+----+---+---+---+
//|2014|  3|  2|  0|
//|2015|  0|  2|  4|
//+----+---+---+---+