Я пытаюсь создать файл snappy.parquet из таблицы Hive. Для его большой секционированной таблицы нужна небольшая часть. Делать это:Результаты уюта сохранить как файл паркета
set parquet.compression=SNAPPY;
set hive.exec.compress.output=true;
set hive.exec.compress.intermediate=true;
set hive.exec.parallel=true;
set mapred.output.compress=true;
set mapreduce.output.fileoutputformat.compress=true;
set mapred.compress.map.output=true;
set mapreduce.map.output.compress=true;
set mapred.output.compression.type=BLOCK;
set mapreduce.output.fileoutputformat.compress.type=BLOCK;
set io.seqfile.compression.type = BLOCK;
insert overwrite directory 'EXTERNAL_DIRECTORY' STORED AS PARQUET select * from SOURCE_TABLE;
Это создает 000000_0 файл со следующей схемой:
message hive_schema {
optional int32 _col0;
optional binary _col1 (UTF8);
optional binary _col2 (UTF8);
optional binary _col3 (UTF8);
optional binary _col4 (UTF8);
optional binary _col5 (UTF8);
optional binary _col6 (UTF8);
optional binary _col7 (UTF8);
optional int64 _col8;
optional int64 _col9;
optional int64 _col10;
)
Теряя все имена столбцов из source_table. Как я могу сохранить его правильно, поэтому я могу использовать его как таблицу улей позже?
Похоже, вы пытаетесь создать новый набор данных, который является источником только из одного раздела большего набора исходных данных, правильно? Если это так, я бы просто создал новую внешнюю таблицу улья, которая выбирает все данные из конкретной таблицы, после которой вы находитесь. Тогда у вас будет таблица и каталог/файлы, доступные для использования. – Jared
Да, я пытаюсь создать небольшой набор данных из пары разделов большой таблицы. Я попытаюсь создать новую таблицу hive и выбрать ее – lacerated