gpt4 book ai didi

configuration - 为 Hive 中的 INSERT OVERWRITE SELECT 指定压缩编解码器

转载 作者:可可西里 更新时间:2023-11-01 14:15:50 26 4
gpt4 key购买 nike

我有一个像这样的 hive 表

  CREATE TABLE beacons
(
foo string,
bar string,
foonotbar string
)
COMMENT "Digest of daily beacons, by day"
PARTITIONED BY ( day string COMMENt "In YYYY-MM-DD format" );

为了填充,我正在做类似的事情:

 SET hive.exec.compress.output=True;
SET io.seqfile.compression.type=BLOCK;

INSERT OVERWRITE TABLE beacons PARTITION ( day = "2011-01-26" ) SELECT
someFunc(query, "foo") as foo,
someFunc(query, "bar") as bar,
otherFunc(query, "foo||bar") as foonotbar
)
FROM raw_logs
WHERE day = "2011-01-26";

这将构建一个新分区,其中包含通过 deflate 压缩的各个产品,但这里的理想情况是改为通过 LZO 压缩编解码器。

不幸的是,我不确定如何实现它,但我假设它是众多运行时设置之一,或者可能只是 CREATE TABLE DDL 中的附加行。

最佳答案

在 INSERT OVERWRITE 之前添加以下运行时配置值:

SET hive.exec.compress.output=true; 
SET io.seqfile.compression.type=BLOCK;
SET mapred.output.compression.codec = com.hadoop.compression.lzo.LzopCodec;

同时通过检查确保您拥有所需的压缩编解码器:

io.compression.codecs

关于 io.seqfile.compression.type 的更多信息可以在这里找到 http://wiki.apache.org/hadoop/Hive/CompressedStorage

我可能弄错了,但似乎 BLOCK 类型可以确保较大的文件以较高的比率压缩,而不是较小的压缩率较低的文件集。

关于configuration - 为 Hive 中的 INSERT OVERWRITE SELECT 指定压缩编解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4831190/

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