我有一个逗号分隔的文本文件,如
1,abc,1,
2,def,1,2,3,4
3,ghi,1,2
4,jkl,1,5,6,7,8,9
5,mno
文本文件将始终具有前两个值,但在第二个逗号后将具有0个或更多值。
如何加载此数据并为前两个值提供别名?
我可以加载它,而不是通过以下方法为前两个值赋予别名:
A = LOAD 'data.txt' USING PigStorage(',');
从这里开始,我可以做一个B = FOREACH A GENERATE $0 AS foo:chararray, $1 AS bar:chararray;
,但会放弃其余的。{1}}。做一个通配符然后将其余的放在一个元组中会很好。
有没有这样做?
答案 0 :(得分:3)
试试这个
B = foreach A generate $0 as foo:chararray, $1 as bar:chararray, $2..;
参考
答案 1 :(得分:0)
我不确定你需要什么。
试试这个
A = LOAD 'data.txt' USING PigStorage(',') AS (foo:chararray, bar:chararray);
这将忽略文件中第二个逗号后的其他值。
答案 2 :(得分:0)
或者您可以为剩余字段创建地图。