在我处理 Pig 的问题过程中,我生成了一个转换文件,其记录如下所示:
(0131228,-1.9,12.8)
(0131229,12.8,30.4)
(0131230,20.6,32.3)
(0131231,21.0,32.4)
我已将中间值 (Max_Temp) 和结束值 (Min_Temp) 转换为两倍。
B1 = LOAD '/tmp/PigLoadSandstoneData/part-m-00000' USING PigStorage(',') AS (Dated: CHARARRAY, Min_Temp: DOUBLE, Max_Temp: DOUBLE);
我想根据我正在使用以下语句进行的比较来过滤掉结果:
X = filter B1 by Max_Temp>25.0;
X = filter B1 by Min_Temp<0.0;
我不确定它为什么抛出 IMPLICIT_CAST_TO_DOUBLE 错误消息:
grunt> X = filter B1 by (Max_Temp>25.0);
2014-04-08 05:42:58,925 [main] WARN org.apache.pig.PigServer - Encountered Warning IMPLICIT_CAST_TO_DOUBLE 1 time(s).
任何人都可以建议我在这里做错了什么吗?有什么解决办法吗?
谢谢- 阿迪尔
最佳答案
试一试,然后告诉我一个是否有效:
我会尝试在
FILTER
语句中加入强制转换,例如,X = 通过 (double)Max_Temp>25.0 过滤 B1;
Pig 正在重铸的数据集中某处存在空值并非不可能。尝试过滤掉空值。如果你想用空值做一些事情(例如,将它设置为 0)试试 COALESCE .
关于hadoop - IMPLICIT_CAST_TO_DOUBLE 警告 : Pig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22937673/