【发布时间】:2016-05-16 15:30:17
【问题描述】:
我有一个庞大的数据库,其中每天包含一个具有以下格式的文本文件: “HH:mm:ss xxxx.xx” 几乎每个交易日的每一秒,所以我在每个文本的文件中有数千行。 我正在寻找将这些行转换为 HashMap 的最佳方法,其中每个键代表交易日的新一分钟。
例如,我想写几行:
00:08:48 9819,9
00:09:10 9818,7
00:09:44 9819,9
00:09:51 9820,9
00:10:07 9822,1
在 HashMap 中看起来像这样:
myHashMap.put("00:09:00", 9818.7)
myHashMap.put("00:10:00", 9822.1)
PS:我知道“00:09:00”不是一个好的日期格式,它只是为了示例!
【问题讨论】:
-
听起来更像是 SQL 数据库的工作,之后您可以使用 with grouping 创建一个 SELECT QUERY。无论如何,当您使用 Java 时,请注意 HashMap 不会存储具有相同键的多个条目。
-
如果您认为您可以做的不仅仅是对每分钟的第一个刻度进行快照,您可以考虑获取一个使用 Esper 的简单示例。这是他们关于 CSV 源的文档espertech.com/esper/release-5.3.0/esperio-reference/html/… 然后您可以在类似流式 SQL 的语法中执行更高级的运算符。
select first(*), last(*) from SensorEvent.win:time(10 sec)但如果你没有机会想要更多东西,它可能有点矫枉过正。