Я запутался в чтении сложного файла (т. Е. Кортежа и мешка) в Pig и определении схем,
, чтобы быть более точным, как я буду переводить {, (и разделитель (например, |) во время чтения файл.
Например, я не могу выяснить содержимое 'complex_7.txt' со следующей строкой в Pig:
(я делаю обратный Eng, у меня есть этот пример, и я пытаюсь написать текстовый файл, в котором можно использовать эту схему)
a = LOAD '/user/maria_dev/complex_7.txt' AS (f1:int,f2:int,B:bag{T:tuple(t1:int,t2:int)});
dump a; This command should produce the following output from complex_7.txt, so how shall this data must be stored in this file (i.e. complex_7.txt)?? This is my question.
10,1,{(2,3),(4,6)}
11,2,{(2,3),(4,6),(8,9)}
12,3,{(1,3)}
сказав, что, как я могу определить несколько PigStorage во время чтения файла, который содержит сложную схему,
Например, если у меня есть следующий текстовый файл (скажем complex_8.txt), как я могу его прочитать?
1|2|{(2,3),(5,6)}, # I am not sure how the actual file must look like, but I may have a case that I may need to use multiple PigStorage separator.
Я предполагаю, что для чтения вышеуказанных данных нам понадобятся два разделителя, один для '| ', и один для', '(в кортеже).
ОБНОВЛЕНИЕ :
Этот ответ помог мне решить эту часть (то есть иметь несколько разделителей) ):
apache данные о загрузке свиньи с несколькими разделителями *
Таким образом, схема этого файла должна иметь следующий формат:
a = LOAD '/user/maria_dev/complex_7.txt' AS (f1: int, f2: int, B: bag {T: tuple (t1: int, t2: int)});
Поэтому я думаю, что я на самом деле пытаюсь сказать, как я могу перевести {,) и разделитель из файла в схему а из схемы в файл?