0

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

我有一个名为“数据”的文件,其中包含以下内容。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 = load 'data' as (f1:int, f2:tuple(t1:int, t2:int, t3:int)); 但是当我做'dump a'时,我得到 - (1,) (​​2,) (3,) (4,) (5,)

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

4

1 回答 1

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 中的数据

于 2013-09-25T14:39:52.317 回答