在pig中解析自定义datetime

hjqgdpho  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(327)

我有以下字符串 "2014-12-15 18:20:48" 但当我分析到datetime时:

A = LOAD 'input.txt' AS (mydate:chararray);
B = FOREACH A GENERATE ToDate(mydate) as datetime;

我得到这个错误: "2014-12-15 18:20:48" is malformed at " 18:20:48" 或者,当我指定格式时 ToDate(mydate, 'yyyy-MM-dd HH:mm:ss'); 日期时间转换为 "2014-12-15T18:20:48.000Z" 而不是 "2014-12-15 18:20:48" . 我怎样才能解决这个问题 "2014-12-15 18:20:48" 键入日期时间?

nxowjjhe

nxowjjhe1#

如果我们将字符串传递给todate函数,那么字符串应该是iosstring格式(参考文献[1])。
todate(字符串)
在第一种情况下,输入字符串不是iosstring格式(缺少t分隔符,表示时间元素的开始)。如果输入字符串是iosstring格式(参考文献[1]),它将工作。
在第二种情况下,调用todate的重载方法:
todate(用户字符串,格式)
all todate方法的返回类型是datetime对象。
如果要以字符串形式获取日期,并且需要以任何其他格式进行进一步处理,则必须在todate()方法的基础上使用tostring()方法以获得所需格式的日期。
参考文献:
iostring格式:http://www.w3.org/tr/note-datetime
todate():http://pig.apache.org/docs/r0.12.0/func.html#to-日期
tostring():http://pig.apache.org/docs/r0.12.0/func.html#to-字符串

相关问题