Spark中任意粒度的聚合



我正试图用这个简单的结构在DataFrame中进行一些聚合:

+--------------------+---------+---------+
|                date|    data1|    data2|
+--------------------+---------+---------+
|2016-01-30 00:10:...|   0.0596|   0.5385|
|2016-01-30 00:20:...|  0.05578|   0.5385|
|2016-01-30 00:30:...|  0.03375|   0.5055|
|2016-01-30 00:40:...|   0.0379|  0.51266|
|2016-01-30 00:50:...|  0.05471|   0.5345|
|2016-01-30 01:00:...|   0.0926|  0.54833|
......

我需要聚合(SUM)数据1和数据2,按日期分组,具有任意粒度(例如,每天、每小时、每周、12小时…)。

我每天都能做到这一点:

SELECT TO_DATE(date) as date, SUM(data1) as data1, SUM(data2) as data2
FROM my_table
GROUP BY TO_DATE(date)

这很好,但我不知道如何实现其他聚合。

您可以尝试以下操作:

SELECT concat(to_date(date), ':', hour(date)) as date_hour
  ...
GROUP BY date_hour

甚至

SELECT to_date(date), hour(date)
  ...
GROUP BY to_date(date), hour(date)

相关内容

  • 没有找到相关文章

最新更新