У меня возникла странная проблема с функцией генерации свиньи, где, если я не использую первое поле, генерируемые данные кажутся неправильными. Это ожидаемое поведение?Pig Latin - метод генерации foreach не работает без первого поля
a = load '/input/temp2.txt' using PigStorage(' ','-tagFile') as (fname:chararray,line:chararray) ;
grunt> b = foreach a generate $1;
grunt> dump b;
(temp2.txt)
(temp2.txt)
grunt> c = foreach a generate $0,$1;
grunt> dump c;
(temp2.txt,field1,field2)
(temp2.txt,field1,field22)
$cat temp2.txt
field1,field2
field1,field22
pig -version
Apache Pig version 0.15.0 (r1682971)
compiled Jun 01 2015, 11:44:35
В примере я ожидал свалка б возвращать значение файла данных вместо имени файла
если вы видите мой пример .. Поле 1 - это имя файла. – enigma
Я считаю, что поле ($ 1) ничего, почему вы получили имя файла с помощью 'generate $ 1', потому что '-tagFile' всегда показывает имя файла в первом столбце. – Porcelain
, если вы ссылаетесь на документацию по свинью (http://pig.apache.org/docs/r0.15.0/func.html#pigstorage), упоминается «(« tagFile »). Добавить первый столбец указывает входной файл имя записи. ". – Porcelain