【问题标题】:Batch insert in Hive using Hive-JDBC使用 Hive-JDBC 在 Hive 中批量插入
【发布时间】:2018-12-01 17:54:38
【问题描述】:

我正在尝试使用 hive-jdbc 连接将数据插入 Hive (NON-ACID) 表。如果我在“语句”中执行单个 SQL 查询,它就可以工作。如果我尝试使用“addBatch”对 SQL 进行批处理,则会收到错误“不支持方法”。我正在使用 hive-jdbc 2.1 和 HDP 2.3。有没有办法使用 hive-jdbc 将多个 SQL 批处理到单个“语句”中?

【问题讨论】:

    标签: hive


    【解决方案1】:

    正如 Ben 提到的,addBatch() 方法在 hive jdbc 中不受支持。 您可以在一个语句中插入多条数据,例如:

    String batchInsertSql = "insert into name_age values (?,?),(?,?)";
    preparedStatement = connection.prepareStatement(batchInsertSql);
    preparedStatement.setString(1, "tom");
    preparedStatement.setInt(2, 10);
    preparedStatement.setString(3, "sam");
    preparedStatement.setInt(4, 20);
    preparedStatement.execute();
    

    【讨论】:

      【解决方案2】:

      不幸的是,Hive-JDBC 中的 addBatch 方法只有一个接口,没有实现......

      public void addBatch() throws SQLException {
          // TODO Auto-generated method stub
          throw new SQLException("Method not supported");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多