본문 바로가기
빅데이터/hive

[hive] 쿼리를 이용하여 파일시스템에 데이터를 쓰기(INSERT OVERWRITE DIRECTORY)

by hs_seo 2017. 4. 6.

하이브에서는 쿼리를 이용하여 데이터를 로컬이나 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

;




반응형