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

a87*_*874 0 hadoop apache-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列。

因此,检索第4列的Pig脚本应该是什么,即 (239)

Tah*_*qvi 5

您使用分号作为分隔符使用PigStorage

A = LOAD '/path/to/file' USING PigStorage(';');
dump A
Run Code Online (Sandbox Code Playgroud)

转储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
Run Code Online (Sandbox Code Playgroud)

转储B的输出

(239)

如果您想给列命名并使用该名称检索,则可以在load命令中使用AS

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

 Dumping given column with name. 
 B =foreach A generate col1;
 dump B
Run Code Online (Sandbox Code Playgroud)