假设我有一些子节点数目未知的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;
但是,我可能事先不知道目标数据中有多少简单元素(有多少$tag)。我希望使用一个包含如下参数的.txt文件:
输入=/inputpath/lowerlevelsofpath
numbersimpleelements=3个
tag1=tag1名称
tag2=tag2名称
tag3=tag3名称
对输入文件中的每个标记执行regex\u提取
你有什么想法可以实现这个目标吗?
1条答案
按热度按时间xytpbqjk1#
你可以跟着
用一些正则表达式分割文本,这样每一行现在都有值。
为每行生成(标记、值)
在(标记、值)和(标记列表)之间进行连接