在hive表中导入系统名称,系统当前日期,时间

时间:2017-03-09 04:47:01

标签: sql linux hadoop hive

我想创建一个表样本,它应该有9列,我加载的数据只有6列。我想将我的Linux系统名称,Linux当前系统日期,Linux当前时间添加到前三列然后将其余的数据加载到各自的列中。然后我的最终表应该看起来像这样。请有人帮助我 注意:这里是sys_name | sys_date | sys_time |列数据从Linux系统导入,列的其余部分来自数据集中的实际数据。

select * from sample;

sys_name|sys_date|sys_time|column4|column5|column6|column7|column8|column9|
linux   2017-03-09 21:00 data4   data5    data6   data7  data8     data9
linux   2017-03-09 22:00 data4,4 data5,5  data6,6 data7,7 data8,8  data9,9

2 个答案:

答案 0 :(得分:0)

使用Alter table#sample

中添加列
 ALTER TABLE #sample ADD sys_name VARCHAR(20) NULL, sys_date Date,some_name varchar(20) NULL; 

答案 1 :(得分:0)

我假设你在一个单独的表中有column4到column9的列(如果没有,在数据顶部创建一个外部表),在这种情况下,你可以硬编码select statment中的前三列并使用下面的"插入使用select"将数据加载到新表中声明

create table sample(
sysname string,
sysdate date,
some_name string,
column4 string,
.
.
column9 string)
rowfromat delimited
fields terminated by '|'
stored as textfile;

Insert into table sample select 'linux' as sysname, date(current_timestamp) as sys_date, 'name' as some_name, col4, col5, col6, col7, col8, col9 from original_table