【发布时间】:2017-11-24 01:15:10
【问题描述】:
我有一个数据集存储在 HDFS 的一个名为 temp.txt 的文件中,如下所示:
US,Arizona,51.7
US,California,56.7
US,Bullhead City,51.1
India,Jaisalmer,42.4
Libya,Aziziya,57.8
Iran,Lut Desert,70.7
India,Banda,42.4
现在,我通过以下命令将其加载到 Pig 内存中:
temp_input = LOAD '/WC/temp.txt' USING PigStorage(',') as
(country:chararray,city:chararray,temp:double);
在此之后,我将 temp_input 中的所有数据分组为:
group_country = GROUP temp_input BY country;
当我在 group_country 中转储数据时,屏幕上会显示以下输出:
(US,{(US,Bullhead City,51.1),(US,California,56.7),(US,Arizona,51.7)})
(Iran,{(Iran,Lut Desert,70.7)})
(India,{(India,Banda,42.4),(India,Jaisalmer,42.4)})
(Libya,{(Libya,Aziziya,57.8)})
对数据集进行分组后,我尝试通过以下查询获取 group_country 中每个国家/地区的国家名称和个人最高气温:
max_temp = foreach group_country generate group,max(temp);
这会产生一个看起来像这样的错误:
017-06-21 13:20:34,708 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR
1070: Could not resolve max using imports: [, java.lang.,
org.apache.pig.builtin., org.apache.pig.impl.builtin.]
Details at logfile: /opt/ecosystems/pig-0.16.0/pig_1498026994684.log
解决此错误并获取所需结果的下一步应该是什么。 感谢所有帮助。
【问题讨论】:
-
MAX有效,max无效。 -
感谢您的提醒!
标签: hadoop mapreduce hdfs apache-pig