Apache Pig ToDate UDF 时间戳格式
Posted
技术标签:
【中文标题】Apache Pig ToDate UDF 时间戳格式【英文标题】:Apache Pig ToDate UDF Timestamp format 【发布时间】:2015-11-30 23:50:23 【问题描述】:我在 pig 中使用 ToDate UDF 来生成日期时间字段。 输入为 yyyy-MM-dd 格式。 ToDate(sch_trans_dt,'yyyy-MM-dd','Etc/GMT+7') 在时间戳字段中生成带有冒号的值 2015-11-26T00:00:00.000-07:00 有没有办法避免时间戳中的冒号,使生成的值为 2015-11-26T00:00:00.000-0700
【问题讨论】:
【参考方案1】:参考: http://pig.apache.org/docs/r0.12.0/func.html#to-string
ToDate 函数的返回类型是 DateTime 对象(ISO 8601 格式)。要将其转换为自定义字符串格式,我们可以通过给出 ToString 函数 所需的格式字符串作为第二个参数。
猪脚本:
A = LOAD 'input.csv' AS (datestring:chararray);
B = FOREACH A GENERATE ToString(ToDate(datestring,'yyyy-MM-dd','Etc/GMT+7'),'yyyy-MM-dd\'T\'hh:ss:mm.SZ');
DUMP B;
输入:
2015-11-26
输出:
(2015-11-26T12:00:00.0-0700)
【讨论】:
以上是关于Apache Pig ToDate UDF 时间戳格式的主要内容,如果未能解决你的问题,请参考以下文章
使用 java.lang.NoClassDefFoundError 在 AWS EMR 上运行 Pig UDF:org/apache/pig/LoadFunc