使用thrift serde创建配置表

问题描述 投票:0回答:1

我想创建一个外部配置单元表,其中包含通过ThriftSerDe生成的模式。我找不到任何这样做的例子。我想通了,它可能是这样的

CREATE EXTERNAL TABLE IF NOT EXISTS <table name>
ROW FORMAT SERDE 
'org.apache.hadoop.hive.serde2.thrift.ThriftByteStreamTypedSerDe'
WITH serdeproperties (
"serialization.class"="<IDL Class>",
"serialization.format"="org.apache.thrift.protocol.TBinaryProtocol"
) 
Partitioned by (...)
LOCATION 's3n://...';

我有一个包含idl类的Jar,我怎样才能在这里提供jar名称?我应该'添加jar'吗?我该如何选择serde和序列化格式?

hadoop hive thrift thrift-protocol
1个回答
0
投票

add jar在这里工作。但是现在我又收到了另一个错误

FAILED:SemanticException org.apache.hadoop.hive.serde2.SerDeException:LazySimpleSerde支持的嵌套级别数为7无法使用级别8.对于使用LazySimpleSerde的表,请使用hive.serialization.extend.nesting.levels serde属性。

即使将hive.serialization.extend.nesting.levels设置为true也无法解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.