我在Ubuntu 12.04上使用Hadoop 1.0.3,Pig 0.11.0。在HDFS的part-m-00000文件中,内容如下
培训@ BigDataVM:〜/ Installations / hadoop-1.0.3 $ bin / hadoop fs -cat / user / training / user / part-m-00000
1,普利文,20,印度,男
2,Prajval,5,印度,男
3,Prathibha,15岁,印度,F
我将它装入包中,然后按如下方式过滤。
Users1 =将'/ user / training / user / part-m-00000'加载为(user_id,name,age:int,country,gender);
过滤Users1
Fltrd =按年龄< = 16;
但是,当我转储 Users1 时,控制台中会显示5条记录。但是,转储 Fltrd 将不会获取任何记录。
dump Fltrd;
以下警告显示在Pig控制台
中2013-02-24 16:19:40,735 [main] WARN org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 遇到警告ACCESSING_NON_EXISTENT_FIELD 12次。
看起来我做了一些简单的错误,但无法弄清楚它是什么。请帮帮我。
答案 0 :(得分:1)
由于您尚未定义任何加载函数,因此Pig将使用其中的PigStorage 默认分隔符为'\ t'。
如果part-m-00000是文本文件,则尝试将分隔符设置为',':
Users1 = load '/user/training/user/part-m-00000' using PigStorage(',')
as (user_id, name, age:int, country, gender);