阅读 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 以了解元组中字段的顺序的主要内容,如果未能解决你的问题,请参考以下文章

PIG UDF 加载 .gz 文件失败

apache pig count sort

一文了解元宇宙最新发展

Java基础-注解元注解

Pig Hive Hbase 有何不同

一文彻底了解元数据管理与架构设计