Hive 配置单元-每个分区输出多个文件

Hive 配置单元-每个分区输出多个文件,hive,compression,partition,Hive,Compression,Partition,我试图生成一组压缩的csv文件,这些文件可以由集群上运行的spark脚本拾取和处理。因此,我希望将数据分割成多个部分,以便下游处理可以在集群的节点之间并行化。目前,无论我设置了什么选项,hive都会输出单个大文件,每个分区约1GB。这将显著减慢spark中的后续操作。如何设置它以使hive创建多个较小的文件而不是单个较大的文件 CREATE EXTERNAL TABLE IF NOT EXISTS model_sample ( <fields> ) partitioned by (m

我试图生成一组压缩的csv文件,这些文件可以由集群上运行的spark脚本拾取和处理。因此,我希望将数据分割成多个部分,以便下游处理可以在集群的节点之间并行化。目前,无论我设置了什么选项,hive都会输出单个大文件,每个分区约1GB。这将显著减慢spark中的后续操作。如何设置它以使hive创建多个较小的文件而不是单个较大的文件

CREATE EXTERNAL TABLE IF NOT EXISTS model_sample (
<fields>
)
partitioned by (market string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 's3://...';

set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.compress.output=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

set hive.merge.tezfiles=false;
set hive.merge.mapfiles=false;
set hive.merge.mapredfiles=false;
set mapred.max.split.size=68157440;
set mapred.min.split.size=68157440;
set hive.merge.smallfiles.avgsize=128000000;

insert overwrite table model_sample partition(market)(
    select * from ...
);
创建外部表(如果不存在)模型\u示例(
)
分割者(市场字符串)
以“|”结尾的行格式分隔字段
存储为文本文件
位置's3://……';
设置hive.exec.dynamic.partition.mode=nonstrict;
设置hive.exec.compress.output=true;
设置mapred.output.compression.codec=org.apache.hadoop.io.compress.gzip代码;
设置hive.merge.tezfiles=false;
设置hive.merge.mapfiles=false;
设置hive.merge.mapredfiles=false;
设置mapred.max.split.size=68157440;
设置mapred.min.split.size=68157440;
设置hive.merge.smallfiles.avgsize=128000000;
插入覆盖表模型\u示例分区(市场)(
从…中选择*。。。
);

你不需要蜂巢,你可以用SparkSplits读取数据,因为SparkSplits是Spark制造的,所以我不太确定你在说什么。你是吗?