对于来自不同来源的大量大型csv文件(100M lines+),我需要一个快速的代码片段或库来自动猜测日期格式,并将其转换为分解时间或unix时间戳。一旦成功猜测,代码片段必须能够检查随后出现的日期字段的有效性,因为日期格式很可能在整个文件中发生变化。
日期格式的测试集必须是可变的,但从许多给定的日期格式编译一个最优决策树或其他内容就可以了。
我得出的结论是,这类产品根本不存在,但必须进行“市场调查”,因此我提出了这个问题。
我的第一个尝试是为我到目前为止观察到的23种不同的日期格式模仿getdate(),并用考虑到特定于日期的特征的优化版本来替换数字解析器(在日期的末尾部分没有'4‘到'9’,在月份的末尾部分没有'3‘到'9’,等等)。
有没有人遇到过类似的问题,甚至产生过类似的代码?
发布于 2010-08-14 03:32:08
经过两个星期的过度浏览,我得出结论,我必须自己写这篇文章。FTW,我的第一个尝试:http://github.com/hroptatyr/glod
发布于 2010-07-20 04:43:49
我使用Perl脚本处理了来自许多来源的50多种格式的带时间戳的传感器数据(结构化的CSV)。从来不受功能的限制,尽管它是基于脚本的,但它相当快(>10Kline/sec,其中行大约是60-100个字符)我实现了a)首先分析几百行,倒回,然后运行...to为决策逻辑构建上下文。b)在运行结束时发出具有行号和上下文的错误行...so可以编辑违规行,然后将它们设置为在随后的运行中重新插入,因此它可以传递“修补的”错误,即每一行都将匹配一种格式。c)行之间的时间差...only允许增加时间戳。d)我还可以重新格式化其他东西,比如将单位如英制改为SI。虽然来自C阵营,但简单的Perl并不是很陌生,但它使它变得如此简单。注意,如果文件中有足够的信息,此方法可以处理10/04/05 ie DD/MM/YY或MM/DD/YY之类的问题
https://stackoverflow.com/questions/3280354
复制相似问题