>我在Cloudera CDH中创建了一个简单的表。使用的版本是 Hive 1.1.0 CDH 5.8。
create table student(id decimal, name varchar(100), valid char(1) )
clustered by (id) into 2 buckets
stored as orc TBLPROPERTIES('transactional'='true');
当我尝试执行插入语句时
insert into student (id,name,valid) values (1, 'ABC', 'Y');
它给出以下错误
NoViableAltException 无法识别 '(' ''',' 附近的输入 陈述
如果我省略插入查询中的列名,它可以正常工作。 我在 Apache Hive 上尝试了同样的事情,带有列名的插入查询工作正常。
我想在插入查询中指定列名,因为我将插入到列的子集中。关于如何使其工作的任何指示?
谢谢
从Hive 1.2 https://issues.apache.org/jira/browse/HIVE-9481
开始支持 INSERT 语句中的列列表规范
对于早期版本,应按值在目标表中的顺序向所有列插入值。
对于某些列,您可能需要使用硬编码值 -
NULL 或某些默认值。