web-dev-qa-db-fra.com

Hive FAILED: La ligne ParseException 2: 0 ne peut pas reconnaître une entrée proche de '' macaddress '' 'CHAR' '(' dans la spécification de colonne

J'ai essayé d'exécuter Hive -v -f sqlfile.sql

Voici le contenu du fichier

CREATE TABLE UpStreamParam (
'macaddress' CHAR(50),
'datats' BIGINT,
'cmtstimestamp' BIGINT,
'modulation' INT,
'chnlidx'   INT,
'severity' BIGINT,
'rxpower'  FLOAT,
'sigqnoise' FLOAT,
'noisedeviation'  FLOAT,
'prefecber'  FLOAT,
'postfecber'  FLOAT,
'txpower'  FLOAT,
'txpowerdrop' FLOAT,
'nmter'  FLOAT,
'premtter'  FLOAT,
'postmtter'  FLOAT,
'unerroreds'  BIGINT,
'corrected'  BIGINT,
'uncorrectables'  BIGINT)
STORED AS ORC TBLPROPERTIES ("orc.compress"="SNAPPY","orc.bloom.filters.columns"="macaddress")
PARTITIONED BY ('cmtsid' CHAR(50),' date' INT)
LOCATION '/usr/Hive/warehouse/UpStreamParam' ;

Et j'obtiens l'erreur suivante:

FAILED: La ligne 2: 0 de ParseException ne peut pas reconnaître l’entrée près de '' macaddress '' '' CHAR '' ('dans la spécification de colonne

5
user3502786

Tout d'abord, le nom de la colonne doit être entouré de ` (guillemets), et non de ' (guillemets simples).

Par conséquent, vous devez remplacer 'macaddress' par `macaddress`, ainsi que tous les autres noms de colonnes.

Deuxièmement, les commandes STORED AS et TBLPROPERTIES et PARTITIONED BY et LOCATION sont incorrectes . Le bon ordre est PARTITIONED BY, STORED AS, LOCATION, TBLPROPERTIES.

Voir le manuel du langage Hive pour plus de détails . https://cwiki.Apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable

Donc, le bon code est

CREATE TABLE UpStreamParam (
`macaddress` CHAR(50),
`datats` BIGINT,
`cmtstimestamp` BIGINT,
`modulation` INT,
`chnlidx`   INT,
`severity` BIGINT,
`rxpower`  FLOAT,
`sigqnoise` FLOAT,
`noisedeviation`  FLOAT,
`prefecber`  FLOAT,
`postfecber`  FLOAT,
`txpower`  FLOAT,
`txpowerdrop` FLOAT,
`nmter`  FLOAT,
`premtter`  FLOAT,
`postmtter`  FLOAT,
`unerroreds`  BIGINT,
`corrected`  BIGINT,
`uncorrectables`  BIGINT)
PARTITIONED BY (`cmtsid` CHAR(50), `date` INT)
STORED AS ORC
LOCATION '/usr/Hive/warehouse/UpStreamParam'
TBLPROPERTIES ("orc.compress"="SNAPPY","orc.bloom.filters.columns"="macaddress");
11
ymonad

Le problème peut être dû à la version Hive, où le type de données CHAR est pris en charge à partir de la version Hive 0.13.

Si vous utilisez des versions inférieures, essayez d’utiliser le type de données string/varchar.

Veuillez vous référer à https://cwiki.Apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-Char

0
sureshsiva