Apache pig Pig-日期字符串到长转换

Apache pig Pig-日期字符串到长转换,apache-pig,Apache Pig,我在源文本文件中有一些日期值,如下面的第3列 123|text|2000-02-05 01:00:00-0500|true 如何将它们转换为对应的长值?谢谢 a = load 'test.txt'; b = <what should be here>(a); dump b; --output contains long value for column 3 a=load'test.txt'; b=(a); 垃圾场b--输出包含第3列的长值 您可以使用的UDF从将日期字符串转换为I

我在源文本文件中有一些日期值,如下面的第3列

123|text|2000-02-05 01:00:00-0500|true
如何将它们转换为对应的长值?谢谢

a = load 'test.txt';
b = <what should be here>(a);
dump b; --output contains long value for column 3
a=load'test.txt';
b=(a);
垃圾场b--输出包含第3列的长值
您可以使用的UDF从将日期字符串转换为ISO格式,然后使用将ISO格式的日期转换为Unix毫秒

从pig 0.11开始,您可以使用DateTime类型并调用内置UDF


您也可以为这个问题编写自己的UDF,它非常简单。

您使用的是哪个版本的Pig?因为从pig 0.11开始,您不再需要使用Piggybank。您可以使用DateTime类型并调用ToUnixTime内置UDF(),我使用的是0.10.1,但我可以升级到0.11.x。两种我都试试。再次感谢。UDF非常适合我:b=每一个a生成一个ISOToUnix(CustomFormatToISO(c3,'yyyy-MM-dd hh:MM:ssZ'),作为unixTime:long;下一步我将尝试0.11。0.11解决方案也适用于我:b=FOREACH a GENERATE ToUnixTime(ToDate(c3,'yyyy-MM-dd hh:MM:ssZ');弗雷德,你帮我节省了搜索这个的时间,谢谢!