2017-08-27 3 views
0

J'ai créé une table simple dans Cloudera CDH. La version utilisée est Hive 1.1.0 CDH 5.8.Simple Insérer une requête dans une ruche donnant une erreur

create table student(id decimal, name varchar(100), valid char(1)) 
clustered by (id) into 2 buckets 
stored as orc TBLPROPERTIES('transactional'='true'); 

Lorsque je tente d'exécuter une instruction d'insertion

insert into student (id,name,valid) values (1, 'ABC', 'Y'); 

Il donne l'erreur suivante

NoViableAltException Impossible de reconnaître entrée près '(' id '' '' '' en instruction

Si j'omets le nom de la colonne s dans la requête d'insertion, cela fonctionne très bien. J'ai essayé la même chose sur Apache Hive, et la requête d'insertion avec le nom de colonne fonctionne correctement.

Je souhaite spécifier les noms de colonne dans la requête d'insertion, car je vais l'insérer dans un sous-ensemble de colonnes. Des conseils sur la façon de faire fonctionner cela?

Merci

Répondre

1

colonne spécification de la liste dans l'instruction INSERT est prise en charge de la Ruche 1,2
https://issues.apache.org/jira/browse/HIVE-9481

Pour les versions antérieures, vous devez insérer des valeurs à toutes les colonnes par leur ordre dans la table de destination.
Pour certaines colonnes, vous devrez peut-être utiliser des valeurs codées en dur -
NULL ou certaines valeurs par défaut.