impossible de créer la table de la ruche avec de la clé primaire
Je suis incapable de créer une table externe dans la ruche avec de la clé primaire. Voici l'exemple de code:
hive> create table exmp((name string),primary key(name));
Cela me renvoie le message d'erreur suivant:
NoViableAltException(278@[])
org.apache.hadoop.hive.ql.parse.HiveParser_IdentifiersParser.identifier(HiveParser_IdentifiersParser.java:11216)
org.apache.hadoop.de la ruche.ql.l'analyser.HiveParser.identificateur(HiveParser.java:35977)
au org.apache.hadoop.de la ruche.ql.l'analyser.HiveParser.columnNameType(HiveParser.java:31169)
au org.apache.hadoop.de la ruche.ql.l'analyser.HiveParser.columnNameTypeList(HiveParser.java:29373)
au org.apache.hadoop.de la ruche.ql.l'analyser.HiveParser.createTableStatement(HiveParser.java:4439)
au org.apache.hadoop.de la ruche.ql.l'analyser.HiveParser.ddlStatement(HiveParser.java:2084)
au org.apache.hadoop.de la ruche.ql.l'analyser.HiveParser.execStatement(HiveParser.java:1344)
au org.apache.hadoop.de la ruche.ql.l'analyser.HiveParser.déclaration(HiveParser.java:983)
au org.apache.hadoop.de la ruche.ql.l'analyser.ParseDriver.parse(ParseDriver.java:190)
au org.apache.hadoop.de la ruche.ql.Le pilote.compiler(Pilote.java:434)
au org.apache.hadoop.de la ruche.ql.Le pilote.compiler(Pilote.java:352)
au org.apache.hadoop.de la ruche.ql.Le pilote.compileInternal(Pilote.java:995)
au org.apache.hadoop.de la ruche.ql.Le pilote.runInternal(Pilote.java:1038)
au org.apache.hadoop.de la ruche.ql.Le pilote.exécuter(Pilote.java:931)
au org.apache.hadoop.de la ruche.ql.Le pilote.exécuter(Pilote.java:921)
au org.apache.hadoop.de la ruche.cli.CliDriver.processLocalCmd(CliDriver.java:268)
au org.apache.hadoop.de la ruche.cli.CliDriver.processCmd(CliDriver.java:220)
au org.apache.hadoop.de la ruche.cli.CliDriver.processLine(CliDriver.java:422)
au org.apache.hadoop.de la ruche.cli.CliDriver.executeDriver(CliDriver.java:790)
au org.apache.hadoop.de la ruche.cli.CliDriver.exécuter(CliDriver.java:684)
au org.apache.hadoop.de la ruche.cli.CliDriver.principale(CliDriver.java:623)
au coucher du soleil.de réfléchir.NativeMethodAccessorImpl.invoke0(Native method)
au coucher du soleil.de réfléchir.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
au coucher du soleil.de réfléchir.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
à java.lang.de réfléchir.La méthode.invoke(la Méthode.java:483)
au org.apache.hadoop.util.RunJar.principale(RunJar.java:212) FAILED: ParseException ligne 1:18 ans ne peuvent pas reconnaître d'entrée de proximité '(' 'nom'
"chaîne" dans la colonne de spécification
Merci de m'aider.
Corrigez-moi si je me trompe, je rencontre des pertes de données lors d'sqoop fusion sans la clé primaire dans la table de la ruche.
Sqoop poignées de fusionner les clés de manière indépendante de la Ruche définition de la table, donc il n'est pas nécessaire (ou capacité) pour assigner une clé primaire d'une table de la Ruche à cette fin. Si vous rencontrez des Sqoop de fusion questions alors c'est une autre question tout à fait.
OriginalL'auteur Hussain Shaik | 2015-02-16
Vous devez vous connecter pour publier un commentaire.
Désolé il n'y a pas de clé primaire dans la ruche si vous avez d'autres fonctionnalités liées à la table de la ruche obtenu par le biais de ce
OriginalL'auteur arshad Khan
À partir de la Page officielle : https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
Ils ont inclus dans la syntaxe de create table:
Ce qui signifie que nous pouvons créer une table avec des clés primaires dans la ruche
Informations de Version
Comme de la Ruche 2.1.0 (la RUCHE 13290).
Ruche inclut le support pour les non-validés primaire et les contraintes de clé étrangère.
Certains outils SQL générer des requêtes plus efficaces lorsque les contraintes sont présents.
Depuis ces contraintes ne sont pas validés, un système en amont des besoins pour assurer
l'intégrité des données, avant de les charger dans la Ruche.
Exemple:
create table pk(id1 entier, id2 entier,
clé primaire(id1, id2) désactiver novalidate);
create table fk(id1 entier, id2 entier,
contrainte c1 clé étrangère(id1, id2) références pk(id2, id1) désactiver
novalidate);
OriginalL'auteur G.v. Sridhar
Nous n'avons pas de clé primaire et de clé étrangère dans la ruche.Donc, supprimer la clé primaire et de l'exécuter.
create table exmp(nom de la chaîne);
OriginalL'auteur Niyati Priyadarshinee
D'abord, derby dans la ruche ont pas de clé
Deuxièmement, certaines clés peuvent faire double emploi avec le mot-clé dans la ruche de montrer que vous avez à ajouter des guillemets simples.
Pour mon cas, j'obtiens l'erreur avec la requête
il devrait être
OriginalL'auteur truongpmcs
Il n'y a pas de premier concept clé de la Ruche comme il n'est pas une base de données et dans la ruche de fonctionnement est basé sur fichier pas l'enregistrement en fonction.
Essayer cette
Considère ici
rowId
comme unique et effectuer l'opération.OriginalL'auteur Dhrub Thakur
Essayer cette
OriginalL'auteur akhila vangala