猪 - 如何将日期时间投射到chararray

时间:2013-05-29 16:37:24

标签: apache-pig

我正在使用CurrentTime(),这是一种日期时间数据类型。但是,我需要它作为一个chararray。我有以下内容:

A = LOAD ...
B = FOREACH A GENERATE CurrentTime() AS todaysDate;

我尝试了各种方法,例如:

B = FOREACH A GENERATE (chararray)CurrentTime() AS todaysDate;

但是,我总是得到ERROR 1052:无法将日期时间转换为chararray。

任何人都知道如何做到这一点?顺便说一句,我对猪很新。提前谢谢!

2 个答案:

答案 0 :(得分:6)

我有类似的问题,我不想使用另一个答案中描述的自定义UDF。我对Pig很新,但它似乎是一个非常基本的操作来证明UDF的需要。这个命令对我很有用:

B = FOREACH A GENERATE ToString(yourdatetimeobject, 'yyyy-MM-dd\'T\'HH:mm:ssz') AS yourfieldname;

您可以通过查看SimpleDateFormat javadoc

选择所需的格式

答案 1 :(得分:3)

您需要创建一个进行转换的custom UDF (例如:见CurrentTime() implementation)。或者,您可以查看我的answer类似主题以获取解决方法 如果您在AWS上,请使用他们的DATE_TIME UDF。