[HADOOP] 파일에 하이브 쿼리 출력
HADOOP파일에 하이브 쿼리 출력
나는 자바 코드로 하이브 쿼리를 실행한다. 예:
결과를 hdfs 파일로 내보내는 방법.
해결법
-
==============================
1.다음 쿼리는 결과를 HDFS에 직접 삽입합니다.
다음 쿼리는 결과를 HDFS에 직접 삽입합니다.
INSERT OVERWRITE DIRECTORY '/path/to/output/dir' SELECT * FROM table WHERE id > 100;
-
==============================
2.이 명령은 출력을 원하는 텍스트 파일로 리디렉션합니다.
이 명령은 출력을 원하는 텍스트 파일로 리디렉션합니다.
$hive -e "select * from table where id > 10" > ~/sample_output.txt
-
==============================
3.그러면 탭으로 구분 된 파일에 결과가 디렉토리 아래에 배치됩니다.
그러면 탭으로 구분 된 파일에 결과가 디렉토리 아래에 배치됩니다.
INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/YourTableDir' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE SELECT * FROM table WHERE id > 100;
-
==============================
4.@sarath 다른 테이블에서 다른 select * 명령을 실행하고 같은 파일에 쓰려면 파일을 덮어 쓰는 방법?
@sarath 다른 테이블에서 다른 select * 명령을 실행하고 같은 파일에 쓰려면 파일을 덮어 쓰는 방법?
OVERWRITE LOCAL DIRECTORY '/ home / training / mydata / outputs'를 삽입하십시오. SELECT로 선택하고 총계로 계산합니다. FROM ( 선택은 expl (분해)로 분해 FROM ( 스플릿 (단어, '')을 스플릿으로 선택 FROM wordcount ) t2 ) t3 GROUP BY expl;
이것은 sarath의 질문에 대한 예입니다.
위의 내용은 로컬 디렉토리에있는 출력 파일에 저장된 워드 카운트 작업입니다 :)
-
==============================
5.tnguyen80의 답변에 동의합니다. 검색어에 특정 문자열 값이있는 경우 큰 따옴표로 묶인 전체 검색어를 사용하는 것이 좋습니다.
tnguyen80의 답변에 동의합니다. 검색어에 특정 문자열 값이있는 경우 큰 따옴표로 묶인 전체 검색어를 사용하는 것이 좋습니다.
예 :
$hive -e "select * from table where city = 'London' and id >=100" > /home/user/outputdirectory/city details.csv
-
==============================
6.이상적인 방법은 "hive -e '대신"INSERT OVERWRITE DIRECTORY / pathtofile'select * from temp 여기서 id> 100 "을 사용하는 것입니다. * from ... '> /filepath.txt"
이상적인 방법은 "hive -e '대신"INSERT OVERWRITE DIRECTORY / pathtofile'select * from temp 여기서 id> 100 "을 사용하는 것입니다. * from ... '> /filepath.txt"
-
==============================
7.파일을 HDFS에 직접 저장하려면 다음 명령을 사용하십시오.
파일을 HDFS에 직접 저장하려면 다음 명령을 사용하십시오.
hive> insert overwrite directory '/user/cloudera/Sample' row format delimited fields terminated by '\t' stored as textfile select * from table where id >100;
그러면 내용이 HDFS의 / user / cloudera / Sample 폴더에 저장됩니다.
-
==============================
8.하이브 명령 행 인터페이스에 다음 행을 입력하십시오.
하이브 명령 행 인터페이스에 다음 행을 입력하십시오.
'/ data / test'행 형식을 덮어 씁니다. '\ t'로 끝나는 구분 필드는 textfile select *로 저장됩니다. testViewQuery;
testViewQuery - 특정보기
-
==============================
9.예:
예:
'/ user / myName / projectA_additionaData /'에 쿼리 결과를 저장할 외부 테이블 만들기
CREATE EXTERNAL TABLE additionaData ( ID INT, latitude STRING, longitude STRING ) COMMENT 'Additional Data gathered by joining of the identified cities with latitude and longitude data' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE location '/user/myName/projectA_additionaData/';
쿼리 결과를 임시 테이블에 제공
insert into additionaData Select T.ID, C.latitude, C.longitude from TWITER join CITY C on (T.location_name = C.location);
임시 테이블 삭제
drop table additionaData
-
==============================
10.출력 디렉토리 및 출력 파일 형식 등을 설정하려면 다음을 수행하십시오.
출력 디렉토리 및 출력 파일 형식 등을 설정하려면 다음을 수행하십시오.
INSERT OVERWRITE [LOCAL] DIRECTORY directory1 [ROW FORMAT row_format] [STORED AS file_format] SELECT ... FROM ...
예:
INSERT OVERWRITE DIRECTORY '/path/to/output/dir' ROW FORMAT DELIMITED STORED AS PARQUET SELECT * FROM table WHERE id > 100;
from https://stackoverflow.com/questions/14289846/hive-query-output-to-file by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] MapReduce 또는 Spark? [닫은] (0) | 2019.06.13 |
---|---|
[HADOOP] Spark에서 CSV에 쓰는 방법 (0) | 2019.06.13 |
[HADOOP] 원사가 기존지도에 가져다주는 또 다른 이점은 무엇입니까? (0) | 2019.06.13 |
[HADOOP] Hadoop 하나의지도 및 다중 Reduce (0) | 2019.06.13 |
[HADOOP] HDFS 여유 공간 사용 가능 명령 (0) | 2019.06.13 |