如何在 Pig 中使用 Avro 数据
Posted
技术标签:
【中文标题】如何在 Pig 中使用 Avro 数据【英文标题】:How to use Avro data in Pig 【发布时间】:2015-02-25 19:47:02 【问题描述】:我正在尝试使用提供的“AvroStorage”加载功能将 Avro 数据文件加载到猪中。数据是从 python 脚本生成的,该脚本使用 python 的 avro 库将文本数据转换为 avro 格式。即使我只是尝试跑步
out = LOAD "path/to/file.avro" using AvroStorage();
我得到了错误
java.lang.ClassCastException: org.apache.avro.util.Utf8 cannot be cast to java.lang.String
我正在使用 avro 1.7.7 版来创建数据。
我不知道pig函数使用的是什么版本的avro,但是pig版本是0.12。
有人知道我为什么会收到这个错误吗?
【问题讨论】:
【参考方案1】:你可以在 pig 中注册一个 jar
REGISTER <local path>/avro-1.7.7.jar;
out = LOAD "path/to/file.avro" using AvroStorage();
关于该错误,pig 0.12 版本中报告了一个错误,已修复 https://issues.apache.org/jira/browse/PIG-3297
【讨论】:
以上是关于如何在 Pig 中使用 Avro 数据的主要内容,如果未能解决你的问题,请参考以下文章
pig-avro:如何自定义方式,他们 avro 存储加载文件
从 ES 加载数据并使用 pig 在 HDFS 中存储为 avro