阅读 pig scheme/header 以了解元组中字段的顺序
Posted
技术标签:
【中文标题】阅读 pig scheme/header 以了解元组中字段的顺序【英文标题】:Reading pig scheme/header to understand the order of fields in a tuple 【发布时间】:2016-03-11 20:42:29 【问题描述】:有没有办法将 .pig_schema 或 .pig_header 值访问到 pig java udf 中,以便我知道正在解析哪个字段名。
我处理由不同进程生成的PigStorage
输出,并且它一直在快速变化。由于这些更改,我想尽可能少地进行更改。
例如:以前的格式喜欢 - name:chararray, age:INT, salary:DOUBLE
当前格式看起来像 - sex:chararray, name:chararray, age:INT, salary:Double
。
在我的 udf 中,我只对姓名和薪水感兴趣,但它们作为我输入的顺序可能会有所不同,如上所述。
【问题讨论】:
【参考方案1】:对于我在 Pig 代码中看到的内容,从 0.11 开始,Pig 具有模式元组。使用 schematuple.udf
选项集(默认),模式被传递给 UDF 函数,并且可以在调用 getInputSchema()
的 UDF exec()
方法中获得。当您获得架构时,您将获得架构中不同元素的名称。然后,您可以根据名称选择所需的字段。
【讨论】:
以上是关于阅读 pig scheme/header 以了解元组中字段的顺序的主要内容,如果未能解决你的问题,请参考以下文章