使用thrift serde创建配置表

时间:2017-12-26 05:06:30

标签: hadoop hive thrift thrift-protocol

我想创建一个外部配置单元表,其中包含要通过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&#39;?我该如何选择serde和序列化格式?

1 个答案:

答案 0 :(得分:0)

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

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

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