【发布时间】:2017-06-10 17:02:38
【问题描述】:
我是 PIG 的新手,我尝试分析 UberDataSet 2 个月,以了解哪一天预订的行程更多。
格式:
B02617,2/27/2015,1551,14677
B02598,2/27/2015,1114,10755
B02512,2/27/2015,272,2056
B02764,2/27/2015,4253,38780
猪脚本1:
A = Load 'UberDataSet.txt' using PigStorage(',') as
(base:chararray, tripdate:datetime, cars:int, tripkms:int);
DESCRIBE A;
DUMP A;
我可以看到 tripdate 是 datetime 类型,但我只得到 ,, 输出而不是日期。
输出:
(B02682,,1395,12693)
(B02617,,1473,12811)
(B02764,,3934,31957)
(B02598,,1134,10661)
(B02617,,1539,14461)
(B02682,,1465,13814)
(B02512,,243,1797)
然后我就这样尝试了。
Pigscript2:
A = Load 'UberDataSet.txt' using PigStorage(',') as
(base:chararray, tripdate:chararray, cars:int, tripkms:int);
B = FOREACH A GENERATE tripdate;
C = FOREACH B GENERATE ToDate(tripdate,'yyyy-MM-dd') as mytripdate;
DESCRIBE C;
DUMP C;
作业失败并显示错误消息:
Job DAG:job_1495878748804_1697 2017-06-10 16:58:32,785 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 失败的! 2017-06-10 16:58:32,790 [main] 错误 org.apache.pig.tools.grunt.Grunt - 错误 1066:无法打开迭代器 对于别名 C. 后端错误:org.apache.pig.b ackend.executionengine.ExecException:错误0:异常同时 执行 [POUserFunc (名称: POUserFunc(org.apache.pig.builtin.ToDate2ARGS)[日期时间] - sc ope-25 运算符键:scope-25) 子项:[]] 处为空: java.lang.IllegalArgumentException:无效格式:“日期”详细信息在 日志文件:/home/manasa.testing_gmail/pig_1497109612992.log
有一些与此问题相关的问题,但无法找到正确的解决方案或我的问题。 Loading datetime format files using PIG
我也尝试将日期格式更改为“MM/dd/yyyy”
"C = FOREACH B GENERATE ToDate(tripdate,'yyyy-MM-dd') as mytripdate;"保持剩余的脚本相同...但是关于 dateformat 的说法相同...
谁能帮我更进一步...
提前谢谢....
【问题讨论】:
标签: apache-pig