蜂巢如何使用插入覆盖目录时创建表?

时间:2018-06-26 06:25:38

标签: hive hiveql

我想知道在执行插入覆盖目录时是否可以创建(插入覆盖)表?该表应具有与目录中存储的数据相同的数据。现在我有类似的东西:

INSERT OVERWRITE DIRECTORY somepath
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
SELECT * FROM Table LIMIT 5;

我想要类似的东西:

INSERT OVERWRITE DIRECTORY somepath AND Table sometable
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
SELECT * FROM SOMETABLE LIMIT 5;

有人可以建议是否可以。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用JSR223 Sampler进行此操作。 Hive可以一次运行插入多个表和目录。多表插入可最大程度地减少所需的数据扫描次数。通过对输入数据进行一次扫描(并应用不同的查询运算符),Hive可以将数据插入多个表/目录中。

例如,下面的语句在一条语句(经过测试)中写入表和目录:

from 
(select 1 id, 'Santhosh' value union all
select 2 id, 'Rajesh' value union all
select 3 id, 'Valeriy' value )s

insert overwrite table test_1 select s.id, s.value

insert overwrite directory  'hdfs://your_dir/test_2' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
select s.id, s.value;

您还可以在每次选择中指定单独的WHERE。