Hive 自动递增
Hive auto increment
我想在 Hive 中创建一个 auto_increment 列。
我在蜂巢文档上没有看到任何关于此的内容,但我发现我们可以使用:
UDFRowSequence 来实现。
是否有最新的方法或者是否有新的方法,大多数 "easier"?
我已经尝试过了:所以在我的 Java 项目中,我创建了这样的函数:
private static void createAutoIncrFunction() throws SQLException {
Statement stmt = conn.createStatement();
String sql = "create function autoincr as \"org.apache.hadoop.hive.contrib.udf.UDFRowSequence\"";
stmt.execute(sql);
}
正在创建函数。
但是现在我不知道如何用我试过的这个函数来创建我的table:
private static void createTableLine() throws SQLException {
String sql = "CREATE TABLE IF NOT EXISTS line(id_line INT autoincr(), "
+ "uid_ticket VARCHAR(64), "
+ "number INT, "
+ "kind INT)";
Statement stmt = conn.createStatement();
stmt.execute(sql);
}
但它不起作用,所以我的问题是:如何创建一个带有 auto_increment 列的 table 以及如何在其中插入数据?
table正常创建。但是在添加的时候,你可能会使用你创建的函数。
hive> CREATE TABLE increment_table1 (id INT, c1 STRING, c2 STRING, c3 STRING);
hive> INSERT OVERWRITE TABLE increment_table1 SELECT incr() AS inc, id, c1, c2 FROM t1;
您可以使用此 link 了解更多信息
我想在 Hive 中创建一个 auto_increment 列。 我在蜂巢文档上没有看到任何关于此的内容,但我发现我们可以使用: UDFRowSequence 来实现。
是否有最新的方法或者是否有新的方法,大多数 "easier"?
我已经尝试过了:所以在我的 Java 项目中,我创建了这样的函数:
private static void createAutoIncrFunction() throws SQLException {
Statement stmt = conn.createStatement();
String sql = "create function autoincr as \"org.apache.hadoop.hive.contrib.udf.UDFRowSequence\"";
stmt.execute(sql);
}
正在创建函数。 但是现在我不知道如何用我试过的这个函数来创建我的table:
private static void createTableLine() throws SQLException {
String sql = "CREATE TABLE IF NOT EXISTS line(id_line INT autoincr(), "
+ "uid_ticket VARCHAR(64), "
+ "number INT, "
+ "kind INT)";
Statement stmt = conn.createStatement();
stmt.execute(sql);
}
但它不起作用,所以我的问题是:如何创建一个带有 auto_increment 列的 table 以及如何在其中插入数据?
table正常创建。但是在添加的时候,你可能会使用你创建的函数。
hive> CREATE TABLE increment_table1 (id INT, c1 STRING, c2 STRING, c3 STRING);
hive> INSERT OVERWRITE TABLE increment_table1 SELECT incr() AS inc, id, c1, c2 FROM t1;
您可以使用此 link 了解更多信息