将系统时间戳插入hive表中的时间戳字段

时间:2014-05-29 09:47:45

标签: hive unix-timestamp create-table

我正在使用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来插入该字段。蜂巢有可能吗?我该怎么做?

1 个答案:

答案 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;