2015-07-02 6 views
0

Я хочу создать столбец auto_increment в Hive. Я ничего не видел в документе о hive, но я обнаружил, что мы можем использовать: UDFRowSequence, чтобы это сделать.Hive auto increment

Есть ли последний способ сделать это или есть новый способ, самый «простой»?

Я уже пробовал: так в моем проекте 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); 
} 

Создание функции работает. Но теперь я не знаю, как создать свою таблицу с помощью этой функции я попытался:

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 и как я могу вставить данные в нем?

ответ

0

Таблица создана нормально. Но при добавлении вы можете использовать созданную вами функцию.

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 для получения дополнительной информации