我正在尝试在Hive中创建一个临时表,如下所示:

CREATE TEMPORARY TABLE mydb.tmp2
AS SELECT * FROM (VALUES (0, 'abc'))
AS T (id , mystr);

但这给了我以下错误:
SemanticException [Error 10296]: Values clause with table constructor not yet supported

是否有另一种方法可以通过在同一命令中显式直接提供值来创建临时表?

我的最终目标是运行MERGE命令,并将临时表插入到USING命令之后。所以像这样:
MERGE INTO mydb.mytbl
USING <temporary table>
...

最佳答案

Hive还不支持values构造函数。您可以使用以下查询来实现:

CREATE TEMPORARY TABLE mydb.tmp2
AS SELECT 0 as id, 'abc' as mystr;

要进行合并,可以使用如下临时表:
merge into target_table
using ( select * from mydb.tmp2) temp
on temp.id = target_table.id
when matched then update set ...
when not matched then insert values (...);

关于hadoop - 使用选择和值创建临时表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54717364/

10-16 02:01