[HADOOP] 하이브 : 큰 테이블에서 작은 테이블 만들기
HADOOP하이브 : 큰 테이블에서 작은 테이블 만들기
나는 현재 15 억 개의 행을 가진 Hive 테이블을 가지고있다. 원본 테이블에서 약 1 백만 행의 작은 테이블 (동일한 테이블 스키마 사용)을 만들고 싶습니다. 이상적으로, 새 행은 원본 테이블에서 무작위로 샘플링되지만 원본 테이블의 맨 위 1M 또는 맨 아래 1M을 얻는 것이 좋습니다. 내가 어떻게 할까?
해결법
-
==============================
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.원본 테이블과 동일한 스키마로 새 테이블을 정의 할 수 있습니다.
원본 테이블과 동일한 스키마로 새 테이블을 정의 할 수 있습니다.
그런 다음 INSERT OVERWRITE TABLE
SELECT 문은 원본 테이블을 쿼리해야하며 LIMIT을 사용하면 1M 결과 만 얻습니다.
-
==============================
3.이 쿼리는 상위 1M 행을 꺼내 새 테이블에서 덮어 씁니다.
이 쿼리는 상위 1M 행을 꺼내 새 테이블에서 덮어 씁니다.
CREATE TABLE new_table_name AS SELECT col1, col2, col3, .... FROM original_table WHERE (if you want to put any condition) limit 100000;
from https://stackoverflow.com/questions/17117967/hive-creating-smaller-table-from-big-table by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브 NVL 열의 날짜 형식을 사용할 수 없습니다 - NullpointerException (0) | 2019.07.28 |
---|---|
[HADOOP] Hadoop : 매퍼 출력을 출력 파일에 작성하는 감속기 (0) | 2019.07.28 |
[HADOOP] 실행중인 응용 프로그램에서 사용되는 컨테이너 및 VC 수를 가져 오는 YARN 셸 명령 (0) | 2019.07.28 |
[HADOOP] PHP의 Hive / Thrift를 통한 데이터베이스 쿼리가 작동하지 않습니다. (0) | 2019.07.28 |
[HADOOP] 하이브에서 'InputFormat, OutputFormat'및 'Saveed as'의 차이점 (0) | 2019.07.28 |