【发布时间】: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 数据库中有一个虚拟表。