具有具有以下架构的表:
CREATE TABLE `student_details`(
`id_key` string,
`name` string,
`subjects` array<string>)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'path'
尝试在表中插入值时收到错误消息:
尝试:
INSERT INTO student_details values ('AA87U','BRYAN',array('ENG','CAL_1','CAL_2','HST','MUS'));
错误:
FAILED: SemanticException [Error 10293]: Unable to create temp file for insert values Expression of type TOK_FUNCTION not supported in insert/values
这对我来说没有意义。尝试在线查找并找到了一个类似的网址:ExternalLink。该解决方案也没有任何意义。
请帮忙。
答案 0 :(得分:2)
您不能直接在Hive中插入复杂类型。
您必须创建一个如下所示的虚拟表:
INSERT INTO student_details select 'AA87U','BRYAN',array('ENG','CAL_1','CAL_2','HST','MUS')) from dummy ;
对于Hive 2+,您可以在没有虚拟表的情况下运行。
INSERT INTO student_details select 'AA87U','BRYAN',array('ENG','CAL_1','CAL_2','HST','MUS'))