You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hive2向zlib压缩ORC表插入数据报No enum constant错误求助

Hive 2.0创建zlib压缩ORC表报错解决方案

根因定位

报错栈的核心提示java.lang.IllegalArgumentException: No enum constant org.apache.orc.CompressionKind.zlib直接指向问题:ORC的压缩类型枚举类CompressionKind的所有合法值均为全大写格式,你建表时指定压缩参数使用了小写的zlib,无法匹配到对应的枚举常量导致任务抛出异常。

修复步骤

  • 第一步:删除之前创建的错误配置的ORC zlib表
DROP TABLE IF EXISTS orders_orc_zlib;
  • 第二步:重新创建ORC表,压缩参数指定为全大写的ZLIB
    示例建表语句:
CREATE TABLE orders_orc_zlib (
  order_id INT,
  cust_id STRING,
  order_date DATE,
  order_time STRING,
  freight_charges DOUBLE,
  order_salesman STRING,
  order_posted_date DATE,
  order_ship_date STRING
) STORED AS ORC
TBLPROPERTIES (
  "orc.compress" = "ZLIB"
);

如果你是通过会话参数设置全局压缩格式,也需要用大写:

SET hive.exec.orc.default.compress=ZLIB;
  • 第三步:重新执行数据插入语句即可
INSERT INTO TABLE orders_orc_zlib SELECT * FROM orders_orc;

额外说明

Snappy压缩可以正常使用是因为你之前配置Snappy的时候用了全大写的SNAPPY参数值,刚好匹配了枚举类的常量定义,和zlib的问题本质没有区别。

内容的提问来源于stack exchange,提问作者Narasimha Maiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:15:04