Подтвердить что ты не робот

Экспорт таблицы улья в ведро S3

Я создал таблицу Hive через интерактивный сеанс Elastic MapReduce и заполнил ее из файла CSV следующим образом:

CREATE TABLE csvimport(id BIGINT, time STRING, log STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

LOAD DATA LOCAL INPATH '/home/hadoop/file.csv' OVERWRITE INTO TABLE csvimport;

Теперь я хочу сохранить таблицу Hive в ведре S3, чтобы таблица сохранялась после завершения экземпляра MapReduce.

Кто-нибудь знает, как это сделать?

4b9b3361

Ответ 1

Да, вы должны экспортировать и импортировать свои данные в начале и в конце сеанса улья.

Для этого вам нужно создать таблицу, которая отображается в ведро и каталог 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;

Ваша таблица теперь сохранена, и когда вы создаете новый экземпляр куста, вы можете reimport ваши данные

Ваша таблица может храниться в нескольких разных форматах в зависимости от того, где вы хотите ее использовать.

Ответ 2

Над Query необходимо использовать ключевое слово EXTERNAL, то есть:

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;

таблица хранится в каталоге S3 с разделителями по умолчанию для HIVE.

Ответ 3

Если вы можете получить доступ к консоли aws и иметь "Access Key Id" и "Secret Access Key" для своей учетной записи

Вы также можете попробовать это.

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;