将查询结果导入到另一个表格
一:如果要插入目标表不存在:
select * into 目标表 from 表 where …
二:如果要插入目标表已经存在:
insert into 目的表 select * from 表 where 条件
例:insert into 目的表(字段1,字段2)select 字段1,字段2 from 表 where 条件,同样也可以插入变量,如把字段2修改为常量5,即插入数字5
三:如果是跨数据库操作的话: 怎么把A数据库的atable表所查询的东西,全部插入到B 数据库的btable表中
select * into B.btable from A.atable where …
原文:https://blog.csdn.net/Susan_qwe/article/details/81301636
新建表格,导入查询结果
hive> create table sales_info_new_new > as > select sku_id,sku_name,category_id3,price,sales_count,dt > from sales_info where dt = '2019-04-26';
创建表格,使表格在读数据时跳过行首,并定义分割符
CREATE TABLE temp ( name STRING, id INT ) row format delimited fields terminated BY '\t' lines terminated BY '\n' tblproperties("skip.header.line.count"="1");
将表格中的某一行,按照某一列拆分成多行。
LATERAL VIEW
lateral view用于和split、explode等UDTF一起使用的,能将一行数据拆分成多行数据,在此基础上可以对拆分的数据进行聚合,lateral view首先为原始表的每行调用UDTF,UDTF会把一行拆分成一行或者多行,lateral view在把结果组合,产生一个支持别名表的虚拟表。
split:按照某一分隔符进行分割。
explode:处理map结构的字段
select * from tb_split;
20141018 aa|bb 7|9|0|3
20141019 cc|dd 6|1|8|5
使用方式:select datenu,des,type from tb_split
lateral view explode(split(des,"//|")) tb1 as des
lateral view explode(split(type,"//|")) tb2 as type
发表评论 取消回复