Читайте кортеж из файла на латинском языке - PullRequest
0 голосов
/ 06 января 2020

Это пример из https://pig.apache.org/docs/r0.17.0/basic.html

cat data;
(3,8,9) (4,5,6)
(1,4,7) (3,7,5)
(2,5,8) (9,5,8)

 A = LOAD 'data' AS (t1:tuple(t1a:int, t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));

 DUMP A;
 ((3,8,9),(4,5,6))
 ((1,4,7),(3,7,5))
 ((2,5,8),(9,5,8))

Я создал tp.txt в maria_dev, который имеет ту же дату (то есть

(3,8,9) (4,5,6)
(1,4,7) (3,7,5)
(2,5,8) (9,5,8)

) и прочитайте его:

tp = LOAD 'tp.txt' as (t1:tuple(t1a:int, t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));           

но когда я запустил DUMP X в хрюканье, я получаю следующий вывод:

((3,8,9),)
((1,4,7),)
((2,5,8),)

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 06 января 2020

Оператор загрузки по умолчанию предполагает, что ваши поля разделены табуляцией. Вы, кажется, используете пробелы в вашем текстовом файле. Не меняя файл, вы можете сделать:

tp = LOAD 'tp.txt' USING PigStorage(' ') AS (t1:tuple(t1a:int, t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));

Или вы можете заменить пробелы в вашем текстовом файле на вкладки и сохранить оператор загрузки как есть.

...