0

我有一个序列文件,其值为 proto3 编码的字节数组。

我查看了大象鸟,它很老,只支持 proto 2.x 版本。https://github.com/kevinweil/elephant-bird

它也停止发布新包,最新的包已经有几年了,所以我认为它不再起作用了。

而且我认为我不是唯一遇到这个问题的人,所以这就是场景。

我写了一个应用程序来生成一个包含每个(键,记录)的序列文件,键无关紧要,值是 proto3 编码的字节数组。当我的应用程序生成文件时,它不知道/不需要知道 proto 的架构,它只接受字节数组,放入序列文件中。

当我想在 Hive 中创建表以便查询数据时,我想向 Hive 提供一些信息,以便 Hive 可以正确创建表。

Elephant-bird 举例如下:https ://github.com/twitter/elephant-bird/wiki/How-to-use-Elephant-Bird-with-Hive#reading-protocol-buffers

create table users
 row format serde "com.twitter.elephantbird.hive.serde.ProtobufDeserializer"
with serdeproperties (
 "serialization.class"="com.example.proto.gen.Storage$User")
stored as
 inputformat "com.twitter.elephantbird.mapred.input.DeprecatedRawMultiInputFormat";

但是由于它很旧,对于 Hive 2.4.6 和 proto3,是否有一些等效的解决方案可以让我指出?

谢谢你。

4

0 回答 0