如何在配置单元中从另一个表创建一个表,如果它有数据?

dced5bon  于 2021-07-13  发布在  Hive
关注(0)|答案(1)|浏览(422)
create table b as
select * from table a;

请在此基础上添加检查条件
如果表a有记录,那么应该创建表b
如果表a没有记录,则不应创建表b

xdnvmnnf

xdnvmnnf1#

可以有条件地使脚本失败

--this will generate HiveException with message ASSERT_TRUE(): assertion failed
--it the table is empty and the script will exit
select assert_true(count(*)>0) from a;

--If previous statement executed successfully
create table b as
select * from table a;

另一种方法是使用 java_method("java.lang.System", "exit", 1) :

select "Checking source is not empty ...";

select java_method("java.lang.System", "exit", 1) --Exit 
from
(
select count(*) cnt 
 from a
)s where cnt=0; --select only if count=0

select "Creating the table b ...";
--Put create table here

相关问题