如何从猪的文本文件行中转储特定列?

问题描述 投票:0回答:1

我是pig的新手。我在.txt文件中有我的数据,我想从这个文本文件中检索一个特定的列。在这个文本文件中用;分隔列。

例如,如果行是

1;1;13;2010-09-13T19:16:26.763;239;383084;10;16575;2013-04-05T15:50:48.133;2015-11-21T04:55:50.150;I've rooted my phone. Now what? What do I gain from rooting?;2;0;162;2011-01-25T08:44:10.820;

然后我想从上面的行中检索第4列。

那么,应该是什么猪脚本来检索第四列,即(239)

hadoop apache-pig
1个回答
5
投票

你有分号作为分隔符使用PigStorage

A = LOAD '/path/to/file' USING PigStorage(';');
dump A

转储输出A:

(1,1,13,2010-09-13T19:16:26.763,239,383084,10,16575,2013-04-05T15:50:48.133,2015-11-21T04:55:50.150,我扎根了我的现在怎么样?从生根中获得什么?,2,0,162,2011-01-25T08:44:10.820)

B =foreach A generate $4;
dump B

转储B的输出

(239)

如果要为列指定名称并使用该名称进行检索,则可以在加载命令中使用AS

 A = LOAD '/path/to/file' USING PigStorage(';') AS(col1,col2...);

 Dumping given column with name. 
 B =foreach A generate col1;
 dump B
© www.soinside.com 2019 - 2024. All rights reserved.