创建Hive表时出现错误,请求可行修改方案解决问题
Hive建表报错解决方案
错误原因
报错为ParseException,提示无法识别CREATE EXTERNAL TABLE语句,核心问题是建表语句存在语法不规范问题,结合表结构内容来看,主要是中文注释的写法和符号格式不符合Hive语法要求。
修正方案
1. 规范语法细节
- 所有字段名用反引号
`包裹,避免与Hive内置关键字冲突 - 注释需严格遵循Hive语法,确保符号全为英文半角
- 若使用低版本Hive,需确认是否支持
IF NOT EXISTS语法,不支持则删除该部分
2. 修正后的完整建表语句
CREATE EXTERNAL TABLE IF NOT EXISTS dwd.dwd_trade_order_detail_inc( `id` STRING COMMENT '订单编号', `order_id` STRING COMMENT '订单id', `sku_id` STRING COMMENT '商品sku编号', `sku_name` STRING COMMENT '商品sku名称', `create_time` STRING COMMENT '创建时间', `source_type` STRING COMMENT '订单来源类型', `source_id` STRING COMMENT '来源编号', `sku_num` BIGINT COMMENT '商品数量', `split_original_amount` DECIMAL(16,2) COMMENT '分摊原始金额', `split_activity_amount` DECIMAL(16,2) COMMENT '分摊活动金额', `split_coupon_amount` DECIMAL(16,2) COMMENT '分摊优惠券金额', `split_total_amount` DECIMAL(16,2) COMMENT '分摊总金额', `create_date` STRING COMMENT '创建日期' ) COMMENT '交易订单明细表' PARTITIONED BY (`dt` STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/warehouse/dwd/dwd_trade_order_detail_inc/';
3. 额外检查项
- 确认HDFS存储路径
LOCATION对应的目录存在,或Hive拥有创建该目录的权限 - 若仍报错,检查客户端连接的Hive服务版本,确保语句语法与版本兼容
内容的提问来源于stack exchange,提问作者masthan basha
相关产品推荐
相关产品推荐

