我需要解析 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) 方法,在该方法中我获取列名并添加新的字段模式。
然而,这并不像预期的那样工作。有没有办法做到这一点?