Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 有没有办法在pig中添加日期时间?_Hadoop_Apache Pig - Fatal编程技术网

Hadoop 有没有办法在pig中添加日期时间?

Hadoop 有没有办法在pig中添加日期时间?,hadoop,apache-pig,Hadoop,Apache Pig,我想在pig中做的事情在sql中非常常见。 我有一个格式为yyy-mm-dd hh:mm:ss的日期字段,另一个字段包含一个表示小时数的整数。是否有一种方法可以轻松地将整数添加到datetime字段中,从而获得时钟数学的预期结果 示例:日期为2013-06-01:23:12:12 然后我加上2小时 我应该得到2013-06-02 01:12:12。最新版本的Pig(0.11.0)应该是可能的。但小时数(时间)应符合ISO8601持续时间格式。它提供类AddDuration,允许我们添加带有Dur

我想在pig中做的事情在sql中非常常见。 我有一个格式为yyy-mm-dd hh:mm:ss的日期字段,另一个字段包含一个表示小时数的整数。是否有一种方法可以轻松地将整数添加到datetime字段中,从而获得时钟数学的预期结果

示例:日期为2013-06-01:23:12:12

然后我加上2小时


我应该得到2013-06-02 01:12:12。

最新版本的Pig(0.11.0)应该是可能的。但小时数(时间)应符合
ISO8601持续时间格式
。它提供类
AddDuration
,允许我们添加带有Duration对象的DateTime对象。您可以在此找到有关AddDuration的更多信息

编辑:

是的,您可以添加负小时数。我在我的Ubuntu盒上试过:

输入:

2009-01-07T01:07:01.000Z,PT1S
2008-02-06T02:06:02.000Z,PT1M
2007-03-05T03:05:03.000Z,PT-1H
查询:

grunt> a = LOAD '/pig.txt' USING PigStorage(',') AS (dt:datetime, dr:chararray);
grunt> b = FOREACH a GENERATE AddDuration(dt, dr) AS dt1;
grunt> dump b; 
输出:

(2009-01-07T01:07:02.000Z)
(2008-02-06T02:07:02.000Z)
(2007-03-05T02:05:03.000Z)

使用最新版本的Pig(0.11.0),这应该是可能的。但小时数(时间)应符合
ISO8601持续时间格式
。它提供类
AddDuration
,允许我们添加带有Duration对象的DateTime对象。您可以在此找到有关AddDuration的更多信息

编辑:

是的,您可以添加负小时数。我在我的Ubuntu盒上试过:

输入:

2009-01-07T01:07:01.000Z,PT1S
2008-02-06T02:06:02.000Z,PT1M
2007-03-05T03:05:03.000Z,PT-1H
查询:

grunt> a = LOAD '/pig.txt' USING PigStorage(',') AS (dt:datetime, dr:chararray);
grunt> b = FOREACH a GENERATE AddDuration(dt, dr) AS dt1;
grunt> dump b; 
输出:

(2009-01-07T01:07:02.000Z)
(2008-02-06T02:07:02.000Z)
(2007-03-05T02:05:03.000Z)

你知道如果我也需要增加负工时,这是否有效吗?我正在编辑我的答案,因为我不能写,我想写什么,在这里。请看一下。谢谢,这正是我需要的!我正在尝试这样做,但是我的pig版本似乎不支持datetime作为变量类型。我正试图从AWS的EMR集群中执行此操作。从谷歌上看,liek他们并不是在运行最新的猪。你认为这就是原因吗?哦..是的..这就是原因..他们已经在最新版本中包含了它。如果我也需要添加负小时数,你知道这是否有效吗?我正在编辑我的答案,因为我不能写,我想写什么,在这里。请看一下。谢谢,这正是我需要的!我正在尝试这样做,但是我的pig版本似乎不支持datetime作为变量类型。我正试图从AWS的EMR集群中执行此操作。从谷歌上看,liek他们并不是在运行最新的猪。你认为这就是原因吗?哦..是的..这就是原因..他们已经在最新版本中包含了它。