阅读 pig scheme/header 了解元组中字段的顺序

Reading pig scheme/header to understand the order of fields in a tuple

有没有办法将 .pig_schema 或 .pig_header 值访问到 pig java udf 中,以便我知道正在解析哪个字段名称。

我处理由不同进程生成的 PigStorage 输出,它不断快速变化。由于这些更改,我想尽可能少地进行更改。

例如:以前的格式就像 - {name:chararray, age:INT, salary:DOUBLE}

当前格式看起来像 - {sex:chararray, name:chararray, age:INT, salary:Double }.

在我的 udf 中,我只对姓名和薪水感兴趣,但它们作为我的输入的顺序可能会有所不同,如上所述。

对于我在 Pig 代码中看到的内容,从 0.11 开始,Pig 具有模式元组。设置 schematuple.udf 选项(默认)后,架构将传递给 UDF 函数,并且可以在调用 getInputSchema() 的 UDF exec() 方法中获取。当您获得架构时,您将获得架构中不同元素的名称。然后,您可以 select 根据名称选择所需的字段。