hive创建临时表

方式一

create temporary table 临时表表名 as 
select * from 表名;

hive中的临时表只对当前session有效,session退出后,表会自动删除。

注: 若创建的临时表表名已经存在,那么当前session应用该表名时使用的是你创建的临时表,只有删除或者修改临时表才能使用原先存在的表

临时表不支持分区字段和创建索引

注意要点:

1、如果创建的临时表表名已存在,那么当前session引用到该表名时实际用的是临时表,只有drop或rename临时表名才能使用原始表。

2、临时表限制:不支持分区字段和创建索引

从Hive1.1开始临时表可以存储在内存或SSD,使用hive.exec.temporary.table.storage参数进行配置,该参数有三种取值:memory、ssd、default。

方式二

with a1 as (select * from A)
select * from a1;

1.with as 属于一次性的,后面必须加其他sql一起使用才可以!不然会报错!

2.这里必须要整体作为一条sql查询,即with as语句后不能加分号,不然会报错

多个with as 的使用

with a1 as (select * from A),
a2 as (select * from a1)
select * from a2;


1.多个with as 使用必须使用逗号隔开,

2.前面with as生成的临时表可以在后面的with as中使用 但是with子句内部不能嵌套with子句
 

猜你喜欢

转载自blog.csdn.net/eylier/article/details/129152669