하이브에서는 쿼리를 이용하여 데이터를 로컬이나 HDFS에 파일을 생성하는 것이 가능하다.
Standard syntax:
INSERT OVERWRITE [LOCAL] DIRECTORY directory1
[ROW FORMAT row_format] [STORED AS file_format] (Note: Only available starting with Hive 0.11.0)
SELECT ... FROM ...
Hive extension (multiple inserts):
FROM from_statement
INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement1
[INSERT OVERWRITE [LOCAL] DIRECTORY directory2 select_statement2] ...
row_format
: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
[NULL DEFINED AS char] (Note: Only available starting with Hive 0.13)
* LOCAL 을 이용하여 로컬과 HDFS를 구분하여 저장 가능
* ROW FORMAT 을 이용하여 최종 파일의 타입, 구분자 등을 지정할 수 있음
* From Insert 구문을 이용하여 여러 위치에 파일을 쓰는 것도 가능
-- HDFS에 파일 쓰기
INSERT OVERWRITE DIRECTORY 'hdfs://localhost/sample'
SELECT *
FROM sample
;
-- 특정칼럼만 쓰기
INSERT OVERWRITE DIRECTORY 'hdfs://localhost/sample'
SELECT col1, col2
FROM sample
;
-- 로컬에 쓰기
INSERT OVERWRITE LOCAL DIRECTORY './sample'
SELECT col1, col2
FROM sample
;
-- 칼럼 구분자를 콤마(,)로 지정
INSERT OVERWRITE DIRECTORY 'hdfs://localhost/sample'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT *
FROM sample
;
'빅데이터 > hive' 카테고리의 다른 글
[hive][error] hive로 MR 작업중 Illegal mix of collations A and B for operation '=' ... 오류 (0) | 2017.04.11 |
---|---|
[hive] 하이브의 처리 결과에 칼럼정보 출력 or 추가 (0) | 2017.04.06 |
[hive] 문자열을 맵으로 변화하기 위한 str_to_map() 함수 (0) | 2017.04.05 |
[hive] UDAF 구현 예제 (0) | 2017.03.27 |
[hive] UDF 구현 예제 (0) | 2017.03.23 |