Pig latin - 从文件中读取数据并将其存储为元组

时间:2012-10-26 09:45:27

标签: apache-pig

这是我的设置 - 猪 - 0.10 运行模式 - 本地 user - hadoop具有root访问权限

我有一个名为'data'的文件,其中包含以下内容。 1 1 2 3 2 4 5 6 3 7 8 9 4 1 4 7 5 2 5 8

我正在关注教程 - http://pig.apache.org/docs/r0.10.0/basic.html#tuple-schema 我试图读取文件,使每行中的第一个数字读取为整数,其余3形成一个元组。我正在使用此代码 - a =将'data'加载为(f1:int,f2:tuple(t1:int,t2:int,t3:int)); 但当我'倾倒'时,我得到 - (1) (2) (3) (4) (5)

它看起来与教程完全相同。但输出完全出乎意料。 我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为这不能完全在load语句中完成,但是一对语句可能没有太多麻烦。尝试以下代码:

A = load 'data' USING PigStorage(' ') AS (f1: int, f2: int, f3: int, f4: int);
B = Foreach A Generate f1, TOTUPLE(f2,f3,f4);
dump B;

当我测试它时,它产生了输出:(1,(1,2,3)),这似乎是你的目标。

编辑:记得用正确的文件路径替换'数据'到你的hdfs

中的数据