gpt4 book ai didi

hadoop - 无法使用 Apache Pig 过滤数据

转载 作者:可可西里 更新时间:2023-11-01 14:54:51 25 4
gpt4 key购买 nike

我在 Ubuntu 12.04 上使用 Hadoop 1.0.3、Pig 0.11.0。 HDFS中的part-m-00000文件内容如下

training@BigDataVM:~/Installations/hadoop-1.0.3$ bin/hadoop fs -cat /user/training/user/part-m-00000
1,Praveen,20,India,M
2,Prajval,5,India,M
3,Prathibha,15,India,F

我将它装入一个袋子中,然后按如下方式对其进行过滤。

Users1 = load '/user/training/user/part-m-00000' as (user_id, name, age:int, country, gender);
Fltrd = filter Users1 by age <= 16;

但是,当我转储 Users1 时,控制台中显示了 5 条记录。但是,转储 Fltrd 不会获取任何记录。

dump Fltrd;

Pig 控制台中显示以下警告

2013-02-24 16:19:40,735 [main] WARN org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Encountered Warning ACCESSING_NON_EXISTENT_FIELD 12 time(s).

看起来我犯了一些简单的错误,但无法弄清楚它是什么。请帮我解决这个问题。

最佳答案

由于您没有定义任何加载函数,Pig 将使用 PigStorage其中默认分隔符是 '\t'

如果 part-m-00000 是文本文件,则尝试将分隔符设置为“,”:

Users1 = load '/user/training/user/part-m-00000' using PigStorage(',') 
as (user_id, name, age:int, country, gender);

如果它是一个序列文件,那么看看 Dolan 的或 my回答this问题。

关于hadoop - 无法使用 Apache Pig 过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15051032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com