例题描述和简单分析
有 csv 文件 csv.csv,数据如下所示:
2021-02-02 00:00:00
2021-02-02 01:00:00
2021-02-02 02:00:00
2021-02-02 03:00:00
2021-02-02 04:00:00
2021-02-02 05:00:00
2021-02-02 06:00:00
2021-02-02 07:00:00
2021-02-02 08:00:00
2021-02-02 10:00:00
...
从 2021-02-02 00:00:00 至 2021-03-03 23:00:00,已排序,以 1 小时为间隔,有 30 天的数据,理论上每天 24 条,但实际上有遗漏,需要找出遗漏的日期时间,结果如下:
2021-02-02 09:00:00
2021-02-02 14:00:00
2021-02-03 06:00:00
2021-02-03 09:00:00
2021-02-03 11:00:00
2021-02-03 17:00:00
2021-02-03 18:00:00
2021-02-03 19:00:00
2021-02-03 20:00:00
2021-02-03 23:00:00
...
解法及简要说明
编写集算器SPL脚本,如下所示:
| A | |
|---|---|
| 1 | =periods@s("2021-02-02 00:00:00","2021-03-03 23:00:00",3600) |
| 2 | =file("csv.csv").import@ci() |
| 3 | =A1\A2 |
简要说明:
A1 列出从 2021-02-02 00:00:00 至 2021-03-03 23:00:00 间隔为 1 小时的所有日期时间
A2 读取 csv 文件中的日期时间数据
A3 计算 A1 与 A2 的差集
JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》。
本文介绍了如何使用SPL脚本处理CSV文件中按小时间隔的时间序列数据,查找并列出从2021-02-02到2021-03-03期间的缺失时间点。
686

被折叠的 条评论
为什么被折叠?



