2016-11-15 3 views
0

Я новичок в pig.I мои данные в .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-й столбец из приведенного выше ряда.

Итак, какой должен быть сценарий свиньи для извлечения 4th столбец i.e (239).

ответ

4

У вас есть точка с запятой в качестве разделителя используйте 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, у меня укоренился в моем телефоне. Что теперь я получаю от rooting ?, 2,0,162, 2011-01-25T08: 44: 10.820)

B =foreach A generate $4; 
dump B 

Выход самосвала B

(239)

Вы можете использовать AS в команде нагрузки, если и хотят, чтобы дать названия вашей колонки и retrive с этим именем

A = LOAD '/path/to/file' USING PigStorage(';') AS(col1,col2...); 
Смежные вопросы