0

假设我有一些包含未知数量子节点的 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 文件:

输入=/输入路径/lowerlevelsofpath

numberSimpleElements=3

标签1=标签1名称

标签2=标签2名称

标签 3=标签 3 名称

对输入文件中的每个标签执行 regex_extract

关于如何做到这一点的任何想法?

4

1 回答 1

0

你可以做以下

  1. 通过一些正则表达式拆分文本,以便每一行现在都有值。
  2. 为每一行生成(标签,值)
  3. 在(标签,值)和(标签列表)之间进行连接
于 2013-09-30T18:40:21.753 回答