하이브의 데이터를 csv 형태로 export 하는 방법은 다음과 같다.
다음과 같이 INSERT DIRECTORY 문을 이용화여 파일로 데이터를 작성하는 방법이다.
데이터 양이 작을 경우에는 LOCAL 문을 추가하여 로컬에 데이터를 저장해도 되고,
데이터 양이 많다면 hdfs 에 데이터를 저장하면 된다.
hive -e "
INSERT OVERWRITE [LOCAL] DIRECTORY 'hdfs://hdfs_location'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
SELECT * FROM temp;"
* cli 환경에서 상요할 때는 \ 를 추가하여 개행이 되도록 설정
칼럼 헤더를 파일에 추가해야 한다면 다음과 같이 처리하는 방법도 있다.
hive.cli.print.header 옵션을 이용하여 헤더를 출력하고,
sed 명령어를 이용하여 칼럼간 구분자인 탭(\t)을 콤마(,)로 바꾸는 방법이다.
그리고 출력된 데이터를 로컬파일에 저장한다.
hive -e 'set hive.cli.print.header=true;select * from temp' | sed 's/[\t]/,/g' > ./local_file.cav
이렇게 출력시점에 구분자를 변경해도 되고,
CSV 서데를 이용하는 테이블을 생성하여 데이터를 저장하면 이런 변경없이도 바로 출력하면 된다.
반응형