Druid版本
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
Hive 版本 1.1.0
原始SQL
create table default.sale_detail_6781 like default.sale_detail_1119 STORED AS parquet
格式化SQL
CREATE TABLE default.sale_detail_6781 STORED AS parquet LIKE default.sale_detail_1119
问题 原始SQL在hive中正常执行, 格式化后报如下错:
org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 3:0 missing EOF at 'LIKE' near 'parquet'
格式化使用的接口方法:
String formatSql = SQLUtils.format(sql, "hive");
建议格式化的SQL , STORED AS parquet 放在最后,经测试下面的语句可执行成功.
CREATE TABLE default.sale_detail_6781 LIKE default.sale_detail_1119 STORED AS parquet
使用like 建表只会复制一张已存在hive表的结构,存储格式不会复制,所以这也是需要考虑的一个场景
原提问者GitHub用户chaplinthink
看起来是在使用 Hive SQL 的 LIKE 方式创建表时,执行格式化后的 SQL 语句时出现了错误。
如果您在执行格式化后的 SQL 语句时出现了错误,可能是因为 SQL 语句中存在语法错误或者表不存在等问题。您可以尝试以下几个方面进行排查:
检查 SQL 语句的语法。在执行 SQL 语句前,需要确保 SQL 语句的语法正确,并且符合 Hive SQL 的语法规范。可以使用 SQL 调试工具或者其他方式检查 SQL 语句的语法错误,并进行修正。
检查表是否存在。在使用 LIKE 方式创建表时,需要确保 existing_table_name 对应的表存在,否则会出现表不存在的错误。可以通过查询数据库元数据或者其他方式进行确认。
检查 Hive 版本和配置。在执行 Hive SQL 语句时,需要确保 Hive 的版本和配置正确,并且与 SQL 语句相匹配。可以检查 Hive 的日志或者其他方式查看 Hive 的错误信息,并进行修正。
问题已修复,请用新版本
https://github.com/alibaba/druid/releases/tag/1.2.5
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。