Hive创建外部表触发ParseException错误,请求协助排查
Hive外部表创建失败:ParseException错误排查
问题代码
CREATE EXTERNAL TABLE PART( p_partkey decimal(5), p_name string, p_mfgr string, p_brand string, p_type string, p_size decimal(2), p_container string, p_retailprice decimal(5,3) p_comment string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/user/hive/part';
错误信息
Error: Error while compiling statement: FAILED: ParseException line 10:0 mismatched input 'p_comment' expecting ) near ')' in create table statement (state=42000,code=40000)
错误原因
这是典型的语法逗号缺失问题:p_retailprice decimal(5,3)这一行末尾没有添加逗号,Hive解析器会认为字段定义已经结束,本该遇到右括号),结果却读到了p_comment,因此抛出解析异常。
修正后的代码
CREATE EXTERNAL TABLE PART( p_partkey decimal(5), p_name string, p_mfgr string, p_brand string, p_type string, p_size decimal(2), p_container string, p_retailprice decimal(5,3), -- 补上缺失的逗号 p_comment string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/user/hive/part';
执行修正后的语句就能正常创建外部表了。注意在定义表字段时,除了最后一个字段,其余每个字段末尾都必须用逗号分隔,这类细节很容易遗漏,排查时优先检查语法格式。
内容的提问来源于stack exchange,提问作者Bin Qian Phua
相关产品推荐
相关产品推荐

