2017-12-26 20 views
0

ThriftSerDe를 통해 생성 될 스키마가있는 외부 하이브 테이블을 만들고 싶습니다. 그 일을하는 예를 찾을 수 없습니다. 내가 알아 낸 무엇, 그것은 어떻게 여기에 단지 이름을 제공 할 수드리프트 serde를 사용하여 하이브 테이블 만들기

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를 추가해야합니까? serde 및 직렬화 형식은 어떻게 선택해야합니까?

답변

0

여기에 jar 작품을 추가하십시오. 하지만 이제 다른 오류가 발생합니다.

FAILED : SemanticException org.apache.hadoop.hive.serde2.SerDeException : LazySimpleSerde에 대해 지원되는 중첩 수준의 수는 7입니다. 레벨 8로 작업 할 수 없습니다. hive.serialization.extend를 사용하십시오. LazySimpleSerde를 사용하는 테이블에 대해 nesting.levels serde 속성.

hive.serialization.extend.nesting.levels를 true로 설정 한 후에도이를 해결하지 못했습니다.

+0

set hive.serialization.extend.nesting.levels = true를 통해 해결 된 serialization 예외입니다. – priyanka