【发布时间】:2015-11-21 15:34:38
【问题描述】:
我有一个这样的数据框:
| id | prodId | date | value |
| 1 | a | 2015-01-01 | 100 |
| 2 | a | 2015-01-02 | 150 |
| 3 | a | 2015-01-03 | 120 |
| 4 | b | 2015-01-01 | 100 |
我很乐意做一个 groupBy prodId 并汇总“价值”,将其汇总为日期范围。换句话说,我需要建立一个包含以下列的表格:
- 产品编号
- val_1:如果日期在 date1 和 date2 之间,则为总和
- val_2:如果日期在 date2 和 date3 之间,则为总和
-
val_3: 和以前一样 等等
| prodId | val_1 | val_2 | | | (01-01 to 01-02) | (01-03 to 01-04) | | a | 250 | 120 | | b | 100 | 0 |
spark 中是否有任何预定义的聚合函数允许进行条件求和?您是否建议开发一个 aggr。 UDF(如果是,有什么建议)? 非常感谢!
【问题讨论】:
-
可以提供示例数据,这样我们就不必自己发明了吗?
-
当然,我已经添加了机器人示例数据输入和数据输出。这行得通吗?非常感谢!
-
一些可以复制和粘贴的东西将来会更好,但现在就可以了。
标签: sql apache-spark aggregate-functions apache-spark-sql