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
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");
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