Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Need to add auto increment column in a table using hive

I have to create a table using hive. But I want to create that table with auto increment column.

i have googled but not able to find the exact answer. If Anybody knows the syntax for it . Please share it.

thanks in advance.

like image 868
Rocky Avatar asked Apr 15 '14 11:04

Rocky


3 Answers

You need to use a UDF (user defined function) for it. I have successfully used the UDF in this link http://svn.apache.org/repos/asf/hive/trunk/contrib/src/java/org/apache/hadoop/hive/contrib/udf/UDFRowSequence.java

Further you can learn the use of UDF in hive by this very helpful tutorial.

like image 128
Hussnain Avatar answered Oct 20 '22 18:10

Hussnain


INSERT INTO TEST_INC SELECT
reflect("java.util.UUID", "randomUUID"), test1, test2, test3 from TEST;

for example.

like image 28
yazabara Avatar answered Oct 20 '22 16:10

yazabara


You got to write a UDF for this purpose. Take a look at the following Jira discussion

https://issues.apache.org/jira/browse/HIVE-1304.

Download the following patch file and try it

This can be applied only for small input. Since the UDF row_sequence() is used in the reducer and the reducer count should be kept 1 inorder to keep the autoincrement field distinct

like image 23
SachinJ Avatar answered Oct 20 '22 18:10

SachinJ