2017-02-20 30 views
1

Я использую HDP 2.5 с улей. Когда я создаю таблицу hive, используя нижеследующий запрос;Как заставить CTAS генерировать один файл?

create table Sample_table 
row format delimited 
fields terminated by '|' 
stored as textfile 
AS 
select * 
from sample_table_unique 
where state='AL'; 

Либо я могу создать внешнюю таблицу с определенным местоположением.

Мой вопрос в том, когда я создаю таблицу/внешнюю таблицу, сохраненный файл был разделен, т.е. как ниже мудрые файлы были разделены.

/приложение/ульи/склад/sampledb/sample_table: 00000_0, 00001_0, 00002_0, 00003_0,

Я не хочу, чтобы тот расщепленный файл, я хочу один объединенный файл как 00000_0. Я не знаю, как это происходит. Пожалуйста, расскажите мне, как решить эту проблему.

+0

Это базовая концепция файловой системы HDFS ... файл будет вызываться и управляться hdfs .... –

+0

Да, я знаю. Но я хочу один файл. как это сделать. –

+0

Почему? .......... –

ответ

1

SELECT оператор запускает сопоставителя/MapReduce (зависит от выбора запроса) задание на запись данных в целевую таблицу sample_table из таблицы sample_table_unique источника. Основываясь на количестве заданий, количество создаваемых файлов может отличаться. Чтобы объединить их в одно целое, вы можете установить эти свойства либо для сессии на постоянной основе в hive-site.xml

hive> SET hive.merge.mapfiles=true; 
hive> SET hive.merge.mapredfiles=true; 
hive> SET hive.merge.smallfiles.avgsize=16000000; 
hive> SET hive.merge.size.per.task=256000000; 

В случае TEZ исполнения двигателя, используйте

hive> SET hive.merge.tezfiles=true; 

вместо и mapredfiles.

Когда средний размер выходного файла задания меньше этого номера hive.merge.smallfiles.avgsize, Hive запустит дополнительное задание уменьшения карты, чтобы объединить выходные файлы в большие файлы. Значения для hive.merge.smallfiles.avgsize и hive.merge.size.per.task являются значениями по умолчанию, изменяя их соответственно на размер ввода.

+0

Извините, я могу установить выше настройки в улье, но он не будет работать. Эти файлы разделены. скажите, пожалуйста, как я могу решить. –

+0

Вы пытались изменить значения размера? То, что я опубликовал, является значением по умолчанию. Также каков размер создаваемых файлов '0000 * _0'? – franklinsijo

+0

00000_0: 1.5kb, 00001_0: 1.6kb, 00002_0: 0.2kb. Максимум 1 мб. в основном файлы kb wise разделены –

 Смежные вопросы

  • Нет связанных вопросов^_^