首页 > 解决方案 > 如何使用 impala 或 hive jdbc 驱动程序执行 kudu 查询(使用 jdbcTemplate.update 方法)

问题描述

当我尝试在 hive jdbc 驱动程序的帮助下执行 kudu 查询时,我遇到了异常。

Java代码:

    String createStmt =  "CREATE  TABLE IF NOT EXISTS cnxamd_core.a_9999_cnxa_hdfs_stats_V_2_forview(\n" +
            "bytes bigint COMMENT 'File Size in Bytes' ,\n" +
            "dat String COMMENT 'Date' ,\n" +
            "tm String COMMENT 'Time' ,\n" +
            "load_key String COMMENT 'LOAD_KEY AS DEFINED DURING WORKFLOW PROCESS' ,\n" +
            "fn String COMMENT 'File Name' ,CDL_DATETIME String COMMENT 'CDL_DATETIME' ,\n" +
            "CDL_SOURCE_FILE String COMMENT 'CDL_SOURCE_FILE' , \n" +
            "PRIMARY KEY (bytes)) \n" +
            "PARTITION BY HASH \n" +
            "PARTITIONS 2  \n" +
            "STORED AS KUDU";

    System.out.println("createStmt.. " + createStmt);

    hiveJdbcTemplate.update(createStmt);

错误:

java.sql.SQLException:[Cloudera]HiveJDBCDriver 错误处理查询/语句。错误代码:40000,SQL 状态:TStatus(statusCode:ERROR_STATUS, infoMessages:[*org.apache.hive.service.cli.HiveSQLException:Error while compile statement: FAILED: ParseException line 8:19 cannot identify input near ')''启用规范中的 PARTITION''BY':17:16,org.apache.hive.service.cli.operation.Operation:toSQLException:Operation.java:329,org.apache.hive.service.cli.operation.SQLOperation:prepare :SQLOperation.java:207, org.apache.hive.service.cli.operation.SQLOperation:runInternal:SQLOperation.java:290, org.apache.hive.service.cli.operation.Operation:run:Operation.java:260 , org.apache.hive.service.cli.session.HiveSessionImpl:executeStatementInternal:HiveSessionImpl.java:504, org.apache.hive.service.cli。

标签: javaspringhiveimpalakudu

解决方案


推荐阅读