我想使用scala在Spark中重塑数据帧。我发现大部分示例都使用了groupBy
和pivot
。在我的情况下,我不想使用groupBy。这就是我的数据框架的样子
tagid timestamp value
1 1 2016-12-01 05:30:00 5
2 1 2017-12-01 05:31:00 6
3 1 2017-11-01 05:32:00 4
4 1 2017-11-01 05:33:00 5
5 2 2016-12-01 05:30:00 100
6 2 2017-12-01 05:31:00 111
7 2 2017-11-01 05:32:00 109
8 2 2016-12-01 05:34:00 95
我希望我的数据框看起来像这样,
timestamp 1 2
1 2016-12-01 05:30:00 5 100
2 2017-12-01 05:31:00 6 111
3 2017-11-01 05:32:00 4 109
4 2017-11-01 05:33:00 5 NA
5 2016-12-01 05:34:00 NA 95
我使用了不带groupBy的pivot,它会抛出错误。
df.pivot("tagid")
错误:value pivot不是org.apache.spark.sql.DataFrame的成员。
我如何转换这个?谢谢。
答案 0 :(得分:1)
执行以下操作可以解决您的问题。
cordova plugin add my.plugin.name
您应该将最终数据框设为
df.groupBy("timestamp").pivot("tagId").agg(first($"value"))
有关详情,请查看databricks blog