我想创建一个表样本,它应该有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
答案 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