如何在配置单元中插入uniontype

时间:2016-12-04 17:18:01

标签: insert hive

我在hive中读到了关于联合类型的着名例子

CREATE TABLE union_test(foo UNIONTYPE<int, double, array<string>, struct<a:int,b:string>>);
SELECT foo FROM union_test;

{0:1}
{1:2.0}
{2:["three","four"]}
{3:{"a":5,"b":"five"}}
{2:["six","seven"]}
{3:{"a":8,"b":"eight"}}
{0:9}

好的..很棒。 hive sql中插入这些行的语法是什么? 我尝试插入union_test值(1.0) SemanticException [错误10044]:第1:12行无法插入目标表,因为列号/类型不同'union_test':无法将第0列从字符串转换为uniontype,struct&gt;。

另一方面,如果我创建一个带有double的表,我该如何使用union_test表来提供它?

当然有一个提示。 感谢

1 个答案:

答案 0 :(得分:0)

CREATE table testtable5(c1 integer,c2 uniontype<integer,string>);
INSERT INTO testtable5 VALUES(5,create_union(0,1,'testing'));
SELECT create_union(if(c1<0,0,1),c1,c2) from testtable5;
INSERT INTO testtable5 VALUES(1,cretae_union(1,1,'testing'));
SELECT create_union(if(c1<0,0,1),c1,c2) from testtable5;