Hive创建外部表

时间:2017-03-25 03:15:08

标签: hive parseexception

我正在尝试在配置单元中创建表,但我得到了下面提到的错误。任何人都可以帮我解决问题吗?

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';
  

失败:ParseException行15:10无法识别',''ArrDelay''INT'附近的输入列类型
  蜂房>

2 个答案:

答案 0 :(得分:0)

查找从记事本复制文本时可能添加的某些特殊字符。

答案 1 :(得分:0)

从hive运行CREATE语句:

  

失败:ParseException行33:22表格行格式的字段分隔符中的'BY'期望StringLiteral输入''不匹配

直线:

  

错误:编译语句时出错:FAILED:ParseException 33:22不匹配的输入''期望表行格式的字段分隔符中的'BY'附近的StringLiteral(状态= 42000,代码= 40000)

在这两种情况下,问题都在于

  

FIELDS终止';'

应该写成

  

终止于'\;'

的字段

经过这次修改后,我从蜂巢和直线创建了这个表。

Impala-shell同时接受';'和'\;'并成功创建表。

但是您的错误消息与我的错误消息不同。所以我同意已经给出的答案显然问题在于ArrDelay附近隐形的特殊字符。

相关问题