2016-09-27 4 views
2

에서 분할 된 테이블간에 데이터를 이동하는 방법 나는 두 테이블 emp1emp2하이브

  • 이름
  • 직업
  • 국가
  • emp1이있다 필드 -

    • 사용자 ID를 가지고 있습니다 국가에 파티션이 있고 emp2 파티션에 파티션이 있습니다.

      어떻게 emp2 테이블에 있었다 emp1 플러스 (union all) 이전 데이터에서 데이터 집합으로 emp2

    답변

    0

    덮어 쓰기 목표 테이블 emp1에서 데이터를 이동할 수 있습니다. 참고 distribute by은 쿼리가 끝나면 파티션 생성을 최적화하기위한 것이며, 최종 축소 기는 파티션 데이터 만 수신하므로 메모리 소비가 줄어 듭니다.

    insert overwrite table emp2 partition(occupation) 
    select userid, name, country, occupation from emp1 
    union all 
    select userid, name, country, occupation from emp2 
    distribute by occupation; 
    

    또한 row_number()를 사용하여 중복 제거를 추가 할 수 있습니다.

    +0

    코드 응답만으로는별로 유용하지 않습니다. 질문에 답변하는 방법/이유를 설명하는 세부 정보를 추가 할 수 있다면 도움이 될 것입니다. – SiHa

    +0

    설명과 함께 답을 수정하십시오. 또는 코드를 설명 할 수없는 경우 유용한 링크를 제공하십시오. 유행에 따라 "gimme code please"질문을 만족시키는 답변을 게시하지 않아야합니다. – xinaiz