首页 > 解决方案 > 失败:ParseException 行 1:36 无法识别“1987”附近的输入

问题描述

我正在尝试用这个在 Hive 中创建一个外部表

CREATE EXTERNAL TABLE IF NOT EXISTS 1987(
    YEAR INT,
    MONTH INT,
    DAYOFMONTH INT,
    DAYOFWEEK INT,
    DEPTIME INT,
    CRS INT,
    ARRTIME TIME,
    CARRIER STRING,
    FLIGHTNUM INT,
    TAILNUM STRING,
    ACTUALELAPSED INT,
    CRSELAPSED INT,
    AIRTIME INT,
    ARRDELAY INT,
    DEPDELAY INT,
    ORIGIN STRING,
    DEST STRING,
    DISTANCE INT,
    TAXIIN INT,
    TAXIOUT INT,
    CANCELLED INT,
    CANCELLATIONCODE STRING,
    DIVERTED INT,
    CARRIERDELAY INT,
    WEATHERDELAY INT,
    NASDELAY INT,
    SECURITYDELAY INT,
    LATEAIRCRAFT INT,
    Origin CHAR(1))
COMMENT 'A??O 1987'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
location '/user/raj_ops/PROYECTO/'1987.csv';

但是得到以下错误:

org.apache.hive.service.cli.HiveSQLException: 编译语句时出错: FAILED: ParseException line 1:36 cannot identify input near '1987' '(' 'YEAR' in table name

有谁知道为什么?谢谢 :)

标签: sqlhadoophive

解决方案


我认为你可能需要用反引号来转义表名,如果它是数字的:

`1987`

推荐阅读