通过 PIG 导入数据

Importing Data Through PIG

我有一个简单的 csv 文件

1,2,3,6/23/2011 7:40,KNOWS NOT MUCH,4,5
2,3,4,6/23/2011 7:40,FOO BAR BAZ, 6, 7

我在hdfs上复制了这个,我写了这个程序

grunt> A = LOAD '/staging/foo.csv' USING PigStorage(',') AS (A : int, B : INT, C: INT, D: DATETIME, E: CHARARRAY, F : INT, G : INT);
grunt> DUMP A; 

输出是

Total input paths to process : 1
(1,2,3,,KNOWS NOT MUCH,4,5)
(2,3,4,,FOO BAR BAZ,6,7)

日期部分怎么了?

datetime format 不支持您输入的 6/23/2011 7:40,因此 pig 将在加载期间跳过此日期部分。要解决此问题,只需将日期 column D 声明为 chararray 并根据需要转换为以下任何格式。

参考支持的日期时间格式:
https://pig.apache.org/docs/r0.13.0/func.html#datetime-functions
http://www.w3.org/TR/NOTE-datetime