我正在使用Hive 0.8.0版本。我想在将数据加载到配置单元表时将系统时间戳插入时间戳字段。 详细地: 我有一个包含2个字段的文件,如下所示:
id name
1 John
2 Merry
3 Sam
现在我想在hive表上加载此文件以及额外的列" created_date "。所以我创建了一个带有如下额外字段的hive表:
CREATE table mytable(id int,name string, created_date timestamp) row format delimited fields terminated by ',' stored as textfile;
如果我加载数据文件,我使用了以下查询:
LOAD DATA INPATH '/user/user/data/' INTO TABLE mytable;
如果我运行上述查询" created_date "字段将为NULL。但我希望在将数据加载到hive表时,应该使用系统时间戳而不是null来插入该字段。蜂巢有可能吗?我该怎么做?
答案 0 :(得分:3)
您可以分两步完成此操作。首先将文件中的数据加载到没有时间戳的临时表中。然后从临时表插入到实际表中,并使用unix_timestamp()UDF生成时间戳:
create table temptable(id int, name string)
row format delimited fields terminated by ','
stored as textfile;
create table mytable(id int, name string, created_date timestamp)
row format delimited fields terminated by ','
stored as textfile;
load data inpath '/user/user/data/' into table temptable;
insert into table mytable
select id, name, unix_timestamp()
from temptable;