복붙노트

[HADOOP] 하이브 : 큰 테이블에서 작은 테이블 만들기

HADOOP

하이브 : 큰 테이블에서 작은 테이블 만들기

나는 현재 15 억 개의 행을 가진 Hive 테이블을 가지고있다. 원본 테이블에서 약 1 백만 행의 작은 테이블 (동일한 테이블 스키마 사용)을 만들고 싶습니다. 이상적으로, 새 행은 원본 테이블에서 무작위로 샘플링되지만 원본 테이블의 맨 위 1M 또는 맨 아래 1M을 얻는 것이 좋습니다. 내가 어떻게 할까?

해결법

  1. ==============================

    1.클라이브가 앞에서 제안했듯이 Hive의 내장 샘플링 방법을 사용하는 것이 가장 좋습니다.

    클라이브가 앞에서 제안했듯이 Hive의 내장 샘플링 방법을 사용하는 것이 가장 좋습니다.

    INSERT OVERWRITE TABLE my_table_sample 
    SELECT * FROM my_table 
    TABLESAMPLE (1m ROWS) t;
    

    이 구문은 Hive 0.11에서 소개되었습니다. 이전 버전의 하이브를 실행하는 경우에는 PERCENT 구문을 사용하는 것으로 제한됩니다.

    INSERT OVERWRITE TABLE my_table_sample 
    SELECT * FROM my_table 
    TABLESAMPLE (1 PERCENT) t;
    

    특정 샘플 크기 요구 사항에 맞게 백분율을 변경할 수 있습니다.

  2. ==============================

    2.원본 테이블과 동일한 스키마로 새 테이블을 정의 할 수 있습니다.

    원본 테이블과 동일한 스키마로 새 테이블을 정의 할 수 있습니다.

    그런 다음 INSERT OVERWRITE TABLE

최근에 올라온 글