【发布时间】:2015-04-29 04:39:56
【问题描述】:
这是我的 CSV 格式数据示例:
6/30/2014 23:57,2006,604,131
7/1/2014 0:24,2217,263,143
6/30/2014 23:26,173,3481,134
...
我想将此 CSV 文件加载到 Impala 表中,并将第一列为“TIMESTAMP”:
CREATE TABLE my_table(col1 timestamp, col2 int, col3 int, col4 int)
row format delimited
fields terminated by ',';
LOAD DATA INPATH '/dataset/data' INTO TABLE my_table;
但 Impala 接受 TIMESTAMPS 格式如下:
YYYY-MM-DD HH:MM:SS.sssssssss
虽然我的数据是:
MM/DD/YYYY HH:MM
如何以最快的方式将我的数据转换为 TIMESTAMPS 以供 Impala 读取?我正在尝试使用regexp_replace,但制作一个好的正则表达式并不是很成功。
【问题讨论】:
-
我对 impala 不熟悉,但是我找到了一个discussion about this issue,这个解决方法对你有帮助吗:
from_unixtime(unix_timestamp('2000/01/01', 'yyyy/MM/dd')? -
@Uooo 感谢您的评论。不幸的是,我收到“错误的日期/时间转换格式:”错误。
-
既然你的字段也包含时间,你可以试试
from_unixtime(unix_timestamp(timestamp, 'yyyy/MM/dd HH:mm')吗? -
其实我也试过...
-
实际上,您的数据不是格式为
MM/DD/YYYY HH:MM,而是格式为M/d/yyyy H:m的可变长度字段,这使得解析变得非常麻烦。正如你刚刚经历的那样。