我读了一个关于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}
好 啊。。伟大的。配置单元sql中插入这些行的语法是什么?我尝试插入到union\u test values(1.0)semanticexception[error 10044]:行1:12无法插入到目标表中,因为列号/类型不同“union\u test”:无法将列0从字符串转换为uniontype,struct>。
另一方面,如果我用一个double来创建一个表,那么如何用union\u测试表来填充它呢?
当然有小费。谢谢
2条答案
按热度按时间jq6vz3qz1#
clj7thdc2#
你考虑过看文件吗?
直接从Hive语言手册自定义项,在“复杂类型构造函数”。。。
create_union (tag, val1, val2, ...)
使用标记参数所指向的值创建联合类型。好吧,关于“标签参数”的解释很神秘。
举个例子,只要看看那篇博文的底部和/或hortonworks论坛上这个问题的答案。