2016-08-11 3 views
2

다음과 같이 디렉토리 구조가 있습니다. /data/year=/month=/day=/source1/abc.log 하이브 파티션에서 서브 폴더를 처리하십시오.

  • /data/year=/month=/day=/source2/def.log
  • /데이터/년

    • =/month =/day =/source3/xyz.log

    년, 월, 일을 파티션으로하는 하이브 테이블을 만들고 싶었지만 MSCK를 할 때 'source1'이라는 하위 폴더에 대한 불만이 있습니다. 수리 표.

    CREATE EXTERNAL TABLE SAMPLE ( col1 STRING, col2 STRING ) PARTITIONED BY (year STRING, month STRING, date STRING) STORED as ORC Location "s3n://blah/data/" TBLPROPERTIES ("orc.compress"="SNAPPY");

    MSCK 수리 TABLE은 "예상치 못한 구성 요소 소스 1"을주고 테이블 문을 생성합니다. 파일을 움직이지 않고 외부 테이블을 만드는 방법 당신의 도움을 주셔서 감사합니다.

  • 답변

    1

    당신은 하이브-site.xml 파일에 다음 특성

    hive.msck.path.validation = skip (or) ignore 
    

    을 설정하려고 한 다음 테이블에 'MSCK 수리 TABLE'을 수행 시겠어요

    이 파티션 복구 '에 Hive Manual 에서 대해 참조

    ((MSCK REPAIR TABLE) '섹션

    +1

    답장을 보내 주셔서 감사합니다. 건너 뛰기가 작동하지 않지만 "무시"됩니다. 수정본을 찾으려면 하이브 소스를 살펴보아야 만했습니다. DDLTask.java, method = msck를 참조하십시오. 대답을 편집하여 답변을 표시하십시오. – kamoor

    +0

    great !!! 내 대답 편집 :) – Aditya

    관련 문제