Pig ToDate 铸造错误

Pig ToDate casting error

我有一个日期字段,我正试图将其转换为 'ToDate' 通过 日期看起来像这样

2015-03-28@18:21:18.

ToDate(REPLACE(REPLACE(Date_Time, '@', ' '),'.',''),'yyyy-MM-dd HH:mm:ss')

作业结束并给我这个错误;后端错误:格式无效:“”

我已经有了处理 NULL 值的过滤器,以及 SIZE > 0 的空白。

Return ToDate 函数的类型是 DateTime 对象。您无需替换 @, 。带有 '' (space) 的字符。

参考:http://pig.apache.org/docs/r0.12.0/func.html#to-date,了解详情

输入:a.csv

 2015-03-28@18:21:18.

猪八戒:

  A = LOAD 'a.csv' AS (dateValue:chararray);
  B = FOREACH A GENERATE ToDate(dateValue,'yyyy-MM-dd@HH:mm:ss.');
  DUMP B; 

输出:

    (2015-03-28T18:21:18.000-07:00)

我们还有一个重载的 ToDate 函数,我们可以在其中指定时区。

例如:将时区指定为 GMT

  B = FOREACH A GENERATE ToDate(dateValue,'yyyy-MM-dd@HH:mm:ss.','GMT');
  DUMP B;

输出 2:

 (2015-03-28T18:21:18.000Z)