我想创建一个外部配置单元表,其中包含通过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和序列化格式?
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也无法解决此问题。