2017-03-25 3 views
0

Ich versuche, die Tabelle in der Struktur zu erstellen, aber bekomme den unten genannten Fehler. Kann mir jemand helfen, was ist das Problem?Hive externe Tabelle erstellen

CREATE EXTERNAL TABLE IF NOT EXISTS flightInfo2008 
(Year INT, 
Month INT, 
DayofMonth INT, 
DayOfWeek INT, 
DepTime INT, 
CRSDepTime INT, 
ArrTime INT, 
CRSArrTime INT, 
UniqueCarrier STRING, 
FlightNum INT, 
TailNum STRING, 
ActualElapsedTime INT, 
CRSElapsedTime INT, 
AirTime INT, 
ArrDelay INT, 
DepDelay INT, 
Origin STRING, 
Dest STRING, 
Distance INT, 
TaxiIn INT, 
TaxiOut INT, 
Cancelled INT, 
CancellationCode INT, 
Diverted INT, 
CarrierDelay INT, 
WeatherDelay INT, 
NASDelay INT, 
SecurityDelay INT, 
LateAircraftDelay INT) 
COMMENT 'mydb flightInfo2008' 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ';' 
STORED AS TEXTFILE 
LOCATION '/user/hadoop/mydata'; 

FAILED: ParseException line 15:10 cannot recognize input near ',' 'ArrDelay' 'INT' in column type
hive>

+1

Es scheint in Ordnung zu sein, Sie könnten einen Blick auf Ihr Skript werfen, um zu prüfen, ob Sie einige Sonderzeichen sehen. Versuchen Sie auch, die Namen für Jahr und Monat zu ändern, es gibt UDFs mit diesen Namen und vielleicht ist Hive nicht sehr klar über die Ausnahme. Welche Hive-Version verwendest du? – hlagos

+0

Suche nach TAB-Symbolen und ersetze sie durch Leerzeichen – leftjoin

+0

@lake Ich habe Jahr und Monat geändert, aber es funktioniert immer noch nicht und ich benutze Hive 1.2.1 Version. – mia

Antwort

0

Blick für einige Sonderzeichen, die hinzugefügt werden können, während Sie den Text aus einem Notizblock kopieren.

0

Laufen Ihre CREATE-Anweisung von hive:

FAILED: ParseException line 33:22 mismatched input '' expecting StringLiteral near 'BY' in table row format's field separator

Von Beeline:

Error: Error while compiling statement: FAILED: ParseException line 33:22 mismatched input '' expecting StringLiteral near 'BY' in table row format's field separator (state=42000,code=40000)

In beiden Fällen ist das Problem mit ist

FIELDS TERMINATED BY ';'

die als

geschrieben werden sollte

FIELDS TERMINATED BY '\;'

Nach dieser Änderung habe ich die Tabelle sowohl von Hive und Beeline erstellt.

Impala-Schale akzeptiert beide ';' und '\;' und erstellt die Tabelle erfolgreich.

Aber Ihre Fehlermeldung ist nicht die gleiche wie meine. So stimme ich bereits gegebenen Antworten zu, dass das Problem offenbar bei unsichtbaren Sonderzeichen in der Nähe von ArrDelay liegt.

Verwandte Themen