Предположим, у меня есть некоторые XML-данные, которые имеют неизвестное количество под-узлов. Есть ли метод, который позволяет мне вводить количество подузлов в программу в качестве параметра и обрабатывать ли они их? текущий код-то вроде этогогенерировать другое количество столбцов на основе номера ввода
SourceXML = LOAD '$input' using org.apache.pig.piggybank.storage.XMLLoader('$TopNode') as test:chararray;
test2 = LIMIT SourceXML 3;
test3 = FOREACH test2 GENERATE REGEX_EXTRACT(test,'<$tag1>(.*)</$tag1>',1),
REGEX_EXTRACT(test,'<$tag2>(.*)</$tag2>',1);
dump test3;
однако я не могу заранее знать, как много простых элементов есть в выходных данных (сколько $ тега # есть). Я надеюсь использовать .txt файл, содержащий параметры, который выглядит примерно так:
вход =/inputpath/lowerlevelsofpath
numberSimpleElements = 3
tag1 = tag1name
tag2 = tag2name
tag3 = tag3name
С regex_extract делается на каждом теге во входном файле
Любые идеи о том, как это сделать?
в конечном итоге пытается написать сценарий питона, который динамически сгенерированный код свиньи. Хотя это улучшило гибкость, оно не дало мне то, что мне было нужно. Поэтому я просто написал код Java MapReduce. –