我可以使用Spark数据帧中的值动态创建新值吗?

时间:2016-01-11 13:46:17

标签: java apache-spark

我有一个Spark数据帧(oldDF),如下所示:

Id    | Category | Count
898989  5          12
676767  12         1
334344  3          2
676767  13         3

我想要创建一个新的数据框,其列名为Category,其值为Count by Id。

我无法指定架构或不愿意的原因是因为类别变化很大。有没有办法动态地进行?

我希望看到的输出是上面的Dataframe:

Id     | V3 | V5 | V12 | V13
898989   0    12    0     0
676767   0    0     1     3
334344   2    0     0     0

2 个答案:

答案 0 :(得分:0)

您首先需要执行groupby操作,然后您可以按照here所述的方式应用实现枢轴操作

答案 1 :(得分:0)

使用Spark 1.6

oldDf.groupBy("Id").pivot("category").sum("count)