有没有办法将.pig_schema或.pig_header值访问到pig java udf中,以便我知道正在解析哪个字段名称。
我处理由不同进程生成的PigStorage
输出,并且它会不断变化。由于这些变化,我希望尽可能少地做出更改。
例如:之前的格式就像 - {name:chararray, age:INT, salary:DOUBLE}
当前格式如下 - {sex:chararray, name:chararray, age:INT, salary:Double }
。
在我的udf中,我只对名字和工资感兴趣,但是作为我的输入的顺序可以如上所述变化。
答案 0 :(得分:1)
对于我在Pig代码中看到的内容,自0.11以来,Pig有架构元组。设置schematuple.udf
选项(默认)后,架构将传递给UDF函数,并且可以在调用exec()
的UDF getInputSchema()
方法中获取。获得架构后,您将获得架构的不同元素的名称。然后,您可以根据名称选择所需的字段。