我在使用用于创建表的 protobuf 时遇到问题。
我有一个 .proto 文件,结构中有 2 个字段。Hive 似乎只使用 1 个字段 (EMetaData) 并忽略表中的“字节”类型字段。
message EE {
required EMetaData header = 1;
optional bytes cl = 2;
}
message EMetaData {
required uint32 version = 1;
optional string root_pid = 2;
}
该表在 Hive 中是这样创建的。
Hive>desc pbtest2;
OK
key struct<header:struct<rootpid:string,version:int>> from deserializer
value struct<header:struct<rootpid:string,version:int>> from deserializer
下面是我的创建表语句。
create table pbtest2 row format serde 'MyProtobufDeserializer' with serdeproperties ('KEY_SERIALIZE_CLASS'='CEMessages$EE','VALUE_SERIALIZE_CLASS'='CEMessages$EE') stored as inputformat 'MyInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'
表中不存在字节类型 cl 字段。不确定是什么问题。有没有人遇到过这个问题?如果您有任何建议,请告诉我。