pig拉丁语-从文件中读取数据并将其存储为元组

vwkv1x7d  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(285)

这是我的设置-pig-0.10运行模式-本地用户-hadoop有根访问权限
我有一个名为'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-模式我试图读取文件,使每一行中的第一个数字被读取为整数,其余3形成一个元组。我使用这个代码-a=load'data'作为(f1:int,f2:tuple(t1:int,t2:int,t3:int));但当我“甩a”时,我得到-(1,)(2,)(3,)(4,)(5,)
它看起来和教程完全一样。但结果却出人意料。我做错什么了?

rqdpfwrv

rqdpfwrv1#

我不认为这可以完全在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中数据的正确文件路径替换“data”

相关问题