Hadoop 三月份猪给出错误结果之间的天数
我正在尝试将vertica查询转换为Pig,该查询基本上可以找出两个日期之间的天数。当我转换代码并尝试在Pig中使用DaysBetween函数时,它只为三月份提供不同的输出 清管器结果:Hadoop 三月份猪给出错误结果之间的天数,hadoop,apache-pig,vertica,Hadoop,Apache Pig,Vertica,我正在尝试将vertica查询转换为Pig,该查询基本上可以找出两个日期之间的天数。当我转换代码并尝试在Pig中使用DaysBetween函数时,它只为三月份提供不同的输出 清管器结果: Y = FOREACH X GENERATE (DaysBetween((datetime)ToDate('2015-04-01'),ToDate('2015-03-01'))); Output:- (30) SELECT JULIAN_DAY('2015-04-01')-JULIAN_DAY('2015-0
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-04-01'),ToDate('2015-03-01')));
Output:- (30)
SELECT JULIAN_DAY('2015-04-01')-JULIAN_DAY('2015-03-01');
Output:- (31)
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-03-04'),ToDate('2015-02-04')));
Output:- (28)
SELECT JULIAN_DAY('2015-03-04')-JULIAN_DAY('2015-02-04');
Output :- 28
眩晕结果:
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-04-01'),ToDate('2015-03-01')));
Output:- (30)
SELECT JULIAN_DAY('2015-04-01')-JULIAN_DAY('2015-03-01');
Output:- (31)
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-03-04'),ToDate('2015-02-04')));
Output:- (28)
SELECT JULIAN_DAY('2015-03-04')-JULIAN_DAY('2015-02-04');
Output :- 28
当我在一年中的其他月份检查相同的数据时,我没有得到任何错误
清管器结果:
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-04-01'),ToDate('2015-03-01')));
Output:- (30)
SELECT JULIAN_DAY('2015-04-01')-JULIAN_DAY('2015-03-01');
Output:- (31)
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-03-04'),ToDate('2015-02-04')));
Output:- (28)
SELECT JULIAN_DAY('2015-03-04')-JULIAN_DAY('2015-02-04');
Output :- 28
眩晕结果:
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-04-01'),ToDate('2015-03-01')));
Output:- (30)
SELECT JULIAN_DAY('2015-04-01')-JULIAN_DAY('2015-03-01');
Output:- (31)
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-03-04'),ToDate('2015-02-04')));
Output:- (28)
SELECT JULIAN_DAY('2015-03-04')-JULIAN_DAY('2015-02-04');
Output :- 28
我无法找到差异的原因。需要一些关于如何解决问题的建议。将时区指定为UTC或GMT会有所帮助
Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-04-01', 'yyyy-MM-dd', 'UTC'),ToDate('2015-03-01', 'yyyy-MM-dd', 'UTC')));
我有一种感觉,这里可能有夏令时的问题。在您的第一个示例中,它跨越夏令时边界减去一个小时(可能减去前一天从上午12点到晚上11点的一天)。夏令时是03-08年。你能验证这个理论吗?我现在附近没有Hadoop集群。