Je ne suis pas sûr de ce que je fais mal ici:
Hive> CREATE TABLE default.testtbl(int1 INT,string1 STRING)
stored as orc
tblproperties ("orc.compress"="NONE")
LOCATION "/user/Hive/test_table";
FAILED: ParseException line 1:107 missing EOF at 'LOCATION' near ')'
alors que la requête suivante fonctionne parfaitement bien:
Hive> CREATE TABLE default.testtbl(int1 INT,string1 STRING)
stored as orc
tblproperties ("orc.compress"="NONE");
OK
Time taken: 0.106 seconds
Est-ce que j'ai râté quelque chose. Tous les pointeurs aideront. Merci!
Essayez de mettre le "LOCATION" devant "tblproperties" comme ci-dessous, a travaillé pour moi.
CREATE TABLE default.testtbl(int1 INT,string1 STRING)
stored as orc
LOCATION "/user/Hive/test_table"
tblproperties ("orc.compress"="NONE");
Il semble même que l'exemple SQL du livre "Programming Hive" se soit trompé. Veuillez vous reporter à la définition officielle de la commande create table:
https://cwiki.Apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable
@ Haiying Wang a fait remarquer que LOCATION
doit être placé devant tblproperties
.
Mais je pense que l'erreur se produit également lorsque location
est spécifié ci-dessus stored as
.
Il est préférable de respecter le bon ordre:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later)
[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 and later)]
ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
[STORED AS DIRECTORIES]
[
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive 0.6.0 and later)
]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later)
[AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
Référez-vous à: Hive Create Table
ParseException line lineNumber manquant EOF à '.' près de 'schemaName':
Vous avez obtenu l'erreur ci-dessus en essayant d'exécuter la commande suivante à partir d'un script linux pour tronquer une table Hive
dse -u nom_utilisateur -p mot_de_passe Hive -e "truncate table keyspace.tablename;"
Correction: Nécessité de séparer les commandes dans la ligne de script comme suit -
dse -u nom d'utilisateur -p mot_de_passe Hive -e "utiliser l'espace-clés; tronquer la table espace-tables.nom_table"
Bonne codage!
Vérifiez ce post:
Chargement de données d'un fichier .txt vers une table stockée sous ORC dans Hive
Et vérifiez vos fichiers source présents dans le répertoire spécifié /user/Hive/test_table
. Si les fichiers sont au format .txt
ou dans un autre format non ORC
, vous pouvez suivre les étapes décrites ci-dessus pour éviter l'erreur.
Vous avez la même erreur lors de la création d'une table dans Hive.
J'ai utilisé la commande drop pour supprimer la table, puis exécuter la commande create table que j'avais à nouveau.
Travaillé pour moi.