1

我需要解析 xml 并根据用户为 pig 脚本指定的参数生成列。

例如,考虑以下 xml

<school>
    <students>
        <student>
            <name>test</test>
            <rno>1</rno>
            <rank>3</rank>
        </student>
        <student>
            <name>xyz</test>
            <rno>3</rno>
            <rank>2</rank>
        </student>
    <students>
</school>

我的要求是解析xml并根据用户指定的字段名称生成属性。例如,如果用户将字段名称指定为 'name|rno' ,则解析器应解析 xml 并返回包含名称和 rno 的元组。

我正在使用 XML Loader 将 xml 解析为学生,然后编写了一个 java UDF 来解析学生 xml。我试图在我的 java UDF 类中定义一个参数化构造函数,其中我传递要解析的列/属性。然后我覆盖了 outputSchema(Schema input) 方法,在该方法中我获取列名并添加新的字段模式。

然而,这并不像预期的那样工作。有没有办法做到这一点?

4

0 回答 0