输入中的PigStorage和变量模式

时间:2014-03-21 00:33:08

标签: hadoop apache-pig

我有一个逗号分隔的文本文件,如

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}}。做一个通配符然后将其余的放在一个元组中会很好。

有没有这样做?

3 个答案:

答案 0 :(得分:3)

试试这个

B = foreach A generate $0 as foo:chararray, $1 as bar:chararray, $2..;

参考

Drop single column in Pig

答案 1 :(得分:0)

我不确定你需要什么。

试试这个

A = LOAD 'data.txt' USING PigStorage(',') AS (foo:chararray, bar:chararray);

这将忽略文件中第二个逗号后的其他值。

答案 2 :(得分:0)

或者您可以为剩余字段创建地图。