【问题标题】:Insert data into HIVE over HADOOP通过 HADOOP 将数据插入 HIVE
【发布时间】:2013-06-07 08:43:30
【问题描述】:

我在 redhat5 中使用 hadoop-1.0.4 和 hive-0.10.0。服务启动成功。我能够轻松地创建、删除、选择表格,但我不知道如何插入数据。

例如,我有两个文本框,单击按钮时我想将数据存储在表 (userInfo) 中。我不知道如何在 userInfo(id,password) 中存储文本框值。

private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";


try {
          Class.forName(driverName);
        } catch (ClassNotFoundException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          System.exit(1);
        }
        Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/enggheads","", "");
        Statement stmt = con.createStatement();
        String tableName = "testHiveDriverTable";
        stmt.executeQuery("drop table " + tableName);
        ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)");
        // show tables
        String sql = "show tables '" + tableName + "'";
        System.out.println("Running: " + sql);
        res = stmt.executeQuery(sql);
        if (res.next()) {
          System.out.println(res.getString(1));
        }

它是 Java,但我不知道如何插入两个字段值,因为 Hive 插入不同于 MySQL 或其他数据库语法。

【问题讨论】:

  • 我认为您可以使用 JDBC 驱动程序连接到 hive db 并可以插入前端的值
  • 是的,我正在使用 JDBC 驱动程序并尝试通过前端插入。但我没有找到插入两个字段的插入查询。我也在编辑我的问题并粘贴代码。
  • insert into table tblname(columnlist) select columnlist from dual 可能有效。其中 dual 是一行一列的虚拟表
  • Thanx balaswamy 但我没有一个虚拟表。搜索后我发现在蜂巢中插入只能通过(txt ar csv 文件)ar 通过另一个表完成。有必要为插入创建虚拟表吗?
  • 要将数据插入表中,我们从文件或选择查询中加载它,这里我们没有文件,所以从虚拟表中选择数据。所以它就像插入到表中用户信息选​​择 idvalue,来自 dual 的 pwdvalue。因此,您应该在 hive 数据库中有一个虚拟表。

标签: java hadoop hive hdfs


【解决方案1】:

在 hive 中创建一个虚拟表,如下所示

create table dummy(dummy string) location '/path';

上面的路径会有一个包含数据X的文件

现在从 jdbc 驱动程序运行插入查询,如下所示。

insert into table tblname select forntendvalue1,frontendvalue2 from dual;

【讨论】:

  • 谢谢它的工作,但我想知道这些虚拟表存在于路径中吗?因为我无法在给定路径上看到此表。
  • 如果我在不同的表中添加数据而不是创建一个新的虚拟表,还有一个问题?这些虚拟表不占空间吗?
  • 一张虚拟表可以供所有人使用,这些不会占用太多空间,使用 hadoop fs -dus /path 命令检查空间
  • 你能给我一个链接,我可以在其中获取有关在 hive 中插入虚拟表的完整信息吗??
  • 我没有任何链接,这是我对您问题的最初想法
猜你喜欢
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
相关资源
最近更新 更多