Улей создать таблицу с именем файла 000000_0? - PullRequest
2 голосов
/ 16 декабря 2011

В настоящее время я создаю внешнюю таблицу следующим образом:

CREATE EXTERNAL TABLE site_datatype (
....
yada yada
....
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION '/user/accounting/summary/2011-12-15/site_datatype.result'

Но вместо того, чтобы создавать файл с именем "site_datatype.result" с содержимым в нем, когда я запускаю таблицу перезаписи вставки, он создает каталог "site_datatype.result" с файлом с именем "000000_0" (правильное содержимое хотя).

Это должно работать так? И если да, как я могу обойти это (внутри улья), чтобы сделать это так, как мне нужно?

Спасибо, Mario

1 Ответ

3 голосов
/ 18 декабря 2011

Hive работает на уровне каталогов, поэтому несколько редукторов могут быстро выгружать результаты в HDFS. Если бы он работал на уровне файлов, ему пришлось бы отправить его на один редуктор, чтобы объединить в один файл, добавив ненужное узкое место.

Если вам абсолютно необходимы данные из таблицы Hive в одном файле, вы можете установить число редукторов равным 1, затем запросить данные и передать их в новую таблицу или каталог (с помощью перезаписи вставки).

Другой вариант - получить таблицу из HDFS (hadoop fs -get hive / warehouse / sampletable /.), А затем собрать все файлы вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...