hive 建表设置自增
时间: 2023-11-09 15:08:24 浏览: 203
mysql数据抽取,自动生成hive建表语句
在Hive中,可以使用多种方法来为表添加自增ID。以下是其中三种常用的方法:
1. 使用SERDE和ROW FORMAT关键字来为表添加自增ID。具体步骤如下:
CREATE TABLE your_table (
id INT,
col1 STRING,
col2 INT,
col3 DOUBLE
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = ',',
'field.delim' = ',',
'line.delim' = '\n',
'collection.delim' = '#'
)
STORED AS TEXTFILE;
SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT INTO TABLE your_table
SELECT ROW_NUMBER() OVER (), col1, col2, col3 FROM your_source_table;
2. 使用Hive的内置变量__ROW__ID__来生成递增的ID序列,并将其赋值给新添加的ID列。具体步骤如下:
ALTER TABLE your_table ADD COLUMN id INT;
SET hivevar:row_id=0;
INSERT INTO TABLE your_table
SELECT (${hivevar:row_id}+1), * FROM your_table CROSS JOIN (SELECT @hivevar:row_id:=@hivevar:row_id+1) t;
3. 使用Hive SQL中的row_number() over()开窗函数,该函数可以增加一个排序列。具体步骤如下:
CREATE TABLE your_table (
col1 STRING,
col2 INT,
col3 DOUBLE
);
INSERT INTO TABLE your_table
SELECT ROW_NUMBER() OVER (), col1, col2, col3 FROM your_source_table;
阅读全文