gpt4 book ai didi

Hive 结果保存为 parquet 文件

转载 作者:行者123 更新时间:2023-12-04 17:57:08 25 4
gpt4 key购买 nike

我正在尝试从 Hive 表创建一个 snappy.parquet 文件。它是一个大分区表,只需要它的一小部分。这样做:

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 中的所有列名。我如何正确保存它以便以后可以将其用作配置单元表?

最佳答案

我会通过从您之后的源分区中选择所有数据来为您的数据集创建一个新的外部表。然后你就会有一个可以使用的表和文件。到目前为止,您不能使用外部表执行 create table as select 语句,因此您需要先创建表,然后将数据加载到其中。

create external table yourNewTable ( use your source table DDL...)
stored as parquet location '/yourNewLocation';

insert into yourNewTable
select * from yourSourceTable where yourPartitionedFieldNames = 'desiredPartitionName';

关于Hive 结果保存为 parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39510247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com