账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请教一个关于hive存储格式和压缩格式的问题,关于压缩格式固定的问题
    49
    0
    问题涉及到hive的四种存储格式textfile/orc/rcfile/parquet  1.首先,我在创建hive表的时候,对于orc和parquet格式我可以分别使用tblproperties("orc.compress"="SNAPPY")和tblproperties("parquet.compression"="gzip")这类语句进行建表,例如:create table apl(id1 string, id2 string) row format delimited fields terminated by ',' STORED AS PARQUET tblproperties ("parquet.compression"="lzo");  这样子,我每次往hive表里插入数据后orc和parquet表对数据会自动压缩,这是我想要的。  2.而对于textfile和rcfile存储格式的hive表,我没有找到类似的语句可以做到这样子。我最开始是使用以下语句来设置这两种的压缩格式的,类似于:SET hive.exec.compress.output=true;SET mapred.output.compress=true;SET mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;但是后来我发现这种形式来设置的话是只对当前session生效的,我一关闭shell重新打开,如果没有重新set这些值,那再插入数据就等于是没有压缩的,当然,我也不可能全局改文件设置这个压缩格式。  3.所以,我现在想请教的就是对于textfile和rcfile这两种格式,有没有一种方法可以固定表的压缩格式,使得我不需要每次都去set呢?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 沐沁ど彼岸花※ 普通会员 1楼

      在Hive中,表默认的存储格式是压缩的。压缩文件的大小会受到文件压缩算法的限制。一般来说,最常用的压缩算法是DEFLATE,它的压缩比大约是1.7,压缩文件的大小在50-200MB之间。

      此外,Hive还支持自定义压缩格式。你可以使用Hive的CREATE TABLE语句来创建自定义压缩格式的表。例如,你可以使用CREATE TABLE table_name WITH compression='zip'. 这将创建一个名为table_name的表,该表使用zip压缩格式存储数据。

      然而,如果你想要压缩文件的大小,你仍然需要依赖于文件压缩算法。此外,Hive还支持自定义压缩格式的压缩和解压缩算法。你可以使用ALTER TABLE table_name WITH compression算法='gzip'来使用gzip压缩算法,或者使用ALTER TABLE table_name WITH compression algorithm='lz4'来使用lz4压缩算法。

      总的来说,Hive支持两种主要的存储格式:压缩和非压缩。如果你想要压缩文件的大小,你仍然需要依赖于文件压缩算法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部