将oracle存储过程转换为hive或spark

jjhzyzn0  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(763)

我已经用oracle编写了存储过程。有什么方法可以实现hive或spark中存储过程的相同功能吗。
就像在oracle存储过程中一样,我们有游标,我们可以在另一个过程中调用一个过程,并执行大量其他操作。
请建议,如果这是可能的Hive或如果有一些其他的方式。我在网上搜索过,似乎HiveVersion2提供了一个使用存储过程的选项。
但对于旧版本,有什么解决方案呢?
我是新的Hive和Spark,所以欢迎任何指导或建议。
提前谢谢。

6ie5vjzr

6ie5vjzr1#

你也可以用素色的 java.sql.Connection , CallableStatement ,从spark调用存储过程。
例如

protected ResultSet fetchDataFromJdbc(String storedProc) {
   Connection connection;
   CallableStatement statement;

   try {
     Class.forName("my.db.Driver");

     connection = DriverManager.getConnection("url","user","pass");

     statement = connection.prepareCall(storedProc);
     statement.registerOutParameter(1, "outValue");
     statement.executeQuery();

     return (ResultSet) statement.getObject(1);
   } catch (Exception e) {
         e.printStackTrace();
         log.error(e.getMessage());
   }

 throw new IllegalStateException("Results should have returned.");
}

相关问题