根据输入数字生成不同数量的列

uujelgoq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(260)

假设我有一些子节点数目未知的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提取
你有什么想法可以实现这个目标吗?

xytpbqjk

xytpbqjk1#

你可以跟着
用一些正则表达式分割文本,这样每一行现在都有值。
为每行生成(标记、值)
在(标记、值)和(标记列表)之间进行连接

相关问题