如何使用 PIG 将 Avro 格式存储在 HDFS 中?
Posted
技术标签:
【中文标题】如何使用 PIG 将 Avro 格式存储在 HDFS 中?【英文标题】:How to store Avro format in HDFS using PIG? 【发布时间】:2015-04-08 13:55:31 【问题描述】:处理输入数据后,我有一个 JAVA 对象。我已经创建了用于将对象存储在 avro 文件中的 avro 模式。我一直坚持使用模式将对象写入 HDFS。谁能指导我使用 PIG 脚本和相应的 UDF 编写对象的过程?
【问题讨论】:
【参考方案1】:如果您使用 Java,我想您正在使用 UDF。
因此,您只需将 UDF 的结果作为猪元组返回。
然后您就可以与准备存储的数据建立关系。
最后你可以通过 AvroStorage 使用 STORE 命令了。
【讨论】:
有什么方法可以将 JAVA 对象转换为猪元组?另外,您可以分享使用 avro 模式文件存储元组的语法吗?我一直在寻找将 avrostorage 与模式文件一起使用的正确语法,但找不到它:| 我无法将 JAVA 对象转换为元组,因为 JAVA 对象非常复杂。它涉及list
、map
、用户定义的对象(派生自其他类)和pig不支持用户定义的类:|
当然可以,将列表设置为元组,将地图设置为猪地图......然后将所有结构存储在最终元组中(即通过您的 udf 返回)
用户定义的类、结构呢?以上是关于如何使用 PIG 将 Avro 格式存储在 HDFS 中?的主要内容,如果未能解决你的问题,请参考以下文章
pig-avro:如何自定义方式,他们 avro 存储加载文件
使用 Java 将 Json 对象转换为 Parquet 格式而不转换为 AVRO(不使用 Spark、Hive、Pig、Impala)