2012-02-28 3 views

답변

20

예를 내보내고 시작과

당신이 S3 버킷 및 디렉토리에 매핑 된 테이블을 만들 필요가 이렇게하려면 당신의 하이브 세션의 끝에서 데이터를 가져와야합니다

CREATE TABLE csvexport (
    id BIGINT, time STRING, log STRING 
) 
row format delimited fields terminated by ',' 
lines terminated by '\n' 
STORED AS TEXTFILE 
LOCATION 's3n://bucket/directory/'; 

S3의 테이블에 데이터를 삽입하고 삽입이 완료되면 디렉토리는 csv 파일이있을 것이다

INSERT OVERWRITE TABLE csvexport 
select id, time, log 
from csvimport; 
테이블은 이제 보존

당신은 새로운 하이브 인스턴스를 만들려면 데이터를 다시 가져올 수 있습니다.

테이블을 원하는 위치에 따라 몇 가지 다른 형식으로 저장할 수 있습니다.

CREATE EXTERNAL TABLE csvexport (id BIGINT, time STRING, log STRING) 
row format delimited fields terminated by ',' lines terminated by '\n' 
STORED AS TEXTFILE LOCATION 's3n://bucket/directory/'; 
INSERT OVERWRITE TABLE csvexport select id, time, log from csvimport; 

또 다른 쿼리

INSERT OVERWRITE DIRECTORY 's3n://bucket/directory/' select id, time, log from csvimport; 

테이블 HIVE 기본 구분 기호와 S3 디렉토리에 저장됩니다를 사용하는 것입니다

17

위 쿼리 즉 외부 키워드를 사용해야합니다. 당신은 AWS 콘솔에 액세스하여 계정

은 "Secret Access Key"는 "Access Key Id"하고있을 수 있다면

+0

헤더를 복사하지 않습니다. 헤더를 복사하는 방법이 있습니까? –

0

당신은 다른 위에서 언급 한 바와 같이

CREATE TABLE csvexport(id BIGINT, time STRING, log STRING) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
LOCATION 's3n://"access id":"secret key"@bucket/folder/path'; 

지금 데이터를 삽입 .. 이것도을 시도 할 수 있습니다.

INSERT OVERWRITE TABLE csvexport select id, time, log from csvimport;