使用 Spark SQL 生成基于间隔的时间序列

问题描述 投票:0回答:1

我是 Spark sql 新手。我想生成以下一系列的开始时间和结束时间,当前日期的间隔为 5 秒。假设我在 2018 年 1 月 1 日运行我的工作,我想要一系列相差 5 秒的开始时间和结束时间。所以1天会有17280条记录

START TIME          | END TIME
----------------------------------------- 
01-01-2018 00:00:00 | 01-01-2018 00:00:04
01-01-2018 00:00:05 | 01-01-2018 00:00:09
01-01-2018 00:00:10 | 01-01-2018 00:00:14
.
.
01-01-2018 23:59:55 | 01-01-2018 23:59:59
01-02-2018 00:00:00 | 01-01-2018 00:00:05

我知道我可以使用 scala for 循环生成这个数据帧。我的限制是我只能使用查询来执行此操作。

有什么方法可以使用 select * 构造创建此数据结构吗?

apache-spark apache-spark-sql
1个回答
0
投票

您可以使用 sequence 函数来获取序列,并使用 explode 函数来旋转日期列表,例如:

 select explode(sequence( to_date('2024-04-15')
                         ,to_date('2024-04-20')
                         ,interval 1 day)
                        ) as date
© www.soinside.com 2019 - 2024. All rights reserved.