2016-06-23 6 views
-3

처음에는 잘못되었지만 두 번째 것은 괜찮습니다. 거의 동일합니다. 은 '\ n'의 위치로 끝납니다. 그 이유는 모르겠습니다. 제발 도와주세요.하이브가 테이블을 만들 수 없습니다.

enter image description here

+1

, 추가는 – piyushj

+1

들은 모두이 스크린 샷에 포함되어 있습니다. –

+1

@RuiLuo 다음 번에 화면의 캡쳐 화면이 아닌 실제 텍스트를 입력하십시오. 이런 식으로 사람들은 조각을 복제 할 수 없으며 신속하게 상황을 재현하려고합니다. (이 경우 <> 버튼을 사용하여 서식을 지정할 수 있습니다.) –

답변

0

순서는 저장된 ... 조항의 제외 키워드의 순서가 다른 조항의 앞에 나타나야합니다 DELIMITED

ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\001' 
COLLECTION ITEMS TERMINATED BY '\002' 
MAP KEYS TERMINATED BY '\003' 
LINES TERMINATED BY '\n' 

행 형식이다.

문자 \ 001은^A의 8 진수 코드입니다. ROW FORMAT DELIMITED FIELDS 절을 참조하십시오. '\ 001'은 하이브가^A 문자를 사용하여 필드를 구분한다는 것을 의미합니다.

마찬가지로 \ 002 문자는^B의 8 진수 코드입니다. 행 형식 지정 제한 컬렉션 항목이 '\ 002'인 경우 Hive가^B 문자를 사용하여 개의 컬렉션 항목을 구분합니다.

마지막으로 문자 \ 003은^C의 8 진수 코드입니다. '\ 003'에 의해 MAP KEYS TERMINATED BY 절은 절취선이^C 문자를 사용하여 맵 키를 값에서 분리한다는 것을 의미합니다.

'LINES TERMINATED BY'... '및 STORED AS ... 절에 행 형식 DELIMITED 키워드가 필요하지 않습니다. 사실, Hive는 현재 LINES TERMINATED BY ... '\ n'이외의 문자를 지원하지 않습니다. 그래서이 절은 오늘날에는 효용이 제한적입니다. 프로그래밍 하이브 책 PAGENO에서

참조 : 어떤 두 번째 스크린 샷이없는 47

+0

"\ n '"로 끝나는 줄은 왜 끝내야합니까? –

+1

@RuiLuo 왜 그곳에 놓여 져야하는지에 대한 질문은 '그것이 어떻게 구현되는지'(정확하게 이해한다면)로 대답합니다. 그런 방식으로 구현 된 이유를 알고 싶다면이 사이트에 대한 주제가 될 것 같지 않습니다. (추측을 넘어서서 일반적으로 제대로 대답 할 수없는 이유에 대한 질문). –

관련 문제