我有一个序列文件,其值为 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,是否有一些等效的解决方案可以让我指出?
谢谢你。