У меня есть файл с именем data
, который выглядит следующим образом: (обратите внимание, что после 'personA' есть вкладки)
personA (1, 2, 3)
personB (2, 1, 34)
И у меня есть скрипт Apache pig, подобныйthis:
A = LOAD 'data' AS (name: chararray, nodes: tuple(a:int, b:int, c:int));
C = foreach A generate nodes.$0;
dump C;
Вывод, который имеет смысл:
(1)
(2)
Однако, если я изменю схему скрипта так:
A = LOAD 'data' AS (name: chararray, nodes: tuple());
C = foreach A generate nodes.$0;
dump C;
Тогда вывод, который я получаю, будет таким:
(1, 2, 3)
(2, 1, 34)
Похоже, что первый (и единственный) элемент в этом кортеже является байтовым массивом.то есть он не разбирает входной текст 1, 2, 3
в кортеж.
В будущем у моего ввода будет неизвестное и переменное количество элементов в элементе nodes
, поэтому я не могу просто выписать a:int, …
.
Есть ли способ заставить Pig анализировать входной кортеж как кортеж без необходимости выписывать полную схему?