Hive建表遇ParseException:无法识别列定义中的')' 'COMMENT' 'V1.0'
解决Hive建表时的ParseException错误
这个报错的根源是Hive的SQL解析器不接受空括号()后直接跟COMMENT子句的语法。你的建表语句里,CREATE TABLE default.my_table( )后面直接接COMMENT,解析器在处理完空括号后,无法识别后续的关键字,所以抛出了ParseException。
正确的写法有两种:
方案一:去掉空括号(推荐)
既然表没有列定义,完全可以省略括号部分,直接写后续的表属性:CREATE TABLE default.my_table COMMENT 'V1.0' row format delimited fields terminated BY '\t' lines terminated BY '\n';方案二:保留括号但添加占位列(可选)
如果出于某些原因必须保留括号,可以定义一个无意义的占位列(后续也可以删除):CREATE TABLE default.my_table( dummy_col string COMMENT 'placeholder column' )COMMENT 'V1.0' row format delimited fields terminated BY '\t' lines terminated BY '\n';
你提到其他无列的建表脚本能正常执行,大概率是那些脚本没有写空括号,直接跳过了列定义环节,所以解析器能正常处理。上面的第一种方案和那些正常脚本的逻辑一致,应该可以解决你的问题。
内容的提问来源于stack exchange,提问作者whatthefish
相关产品推荐
相关产品推荐

