set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
使用snappy编解码器覆盖分区:
--enable dynamic partitions
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
--use where conditions to limit new data only
insert overwrite table table_name partition(partition_key)
select * from table_name where partition_key <your condition here> ;
对于gzip,请使用gzip代码:
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec;
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.GzipCodec;
使用gzip代码覆盖分区:
--enable dynamic partitions
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
--use where conditions to limit OLD data only
insert overwrite table table_name partition(partition_key)
select * from table_name where partition_key <your condition here> ;
1条答案
按热度按时间huwehgph1#
您可以用不同的压缩设置覆盖不同的分区。配置压缩编解码器,并使用此编解码器插入覆盖要压缩的分区。
对于snappy:
使用snappy编解码器覆盖分区:
对于gzip,请使用gzip代码:
使用gzip代码覆盖分区:
这样,您就可以为不同的分区使用不同的压缩编解码器。在选择这些表时,不需要指定编解码器。配置单元将自动识别应用于解压缩的编解码器。
当然,这不是关于像orc或parquet这样的自包含文件格式。它们可以有自己的压缩特性。例如orc.compress=snappy