【问题标题】:Apache Hive: FAILED: ParseException line 4:1 character '' not supported hereApache Hive: FAILED: ParseException line 4:1 character '' not supported here
【发布时间】:2021-04-02 08:52:22
【问题描述】:

我正在尝试在 Apache Hive 中创建一个新表,该表从 CSV 文件加载数据。 我写了这个脚本

CREATE SCHEMA IF NOT EXISTS practica2;

CREATE EXTERNAL TABLE IF NOT EXISTS practica2.station_data 
(IDPROVINCIA string,
SPROVINCIA string,
IDESTACION string, 
SESTACION string,
FECHA string,
DIA string,
TEMPMAX string,
HORMINTEMPMAX string,
TEMPMIN string,
HORMINTEMPMIN string,
TEMPMEDIA string,
HUMEDADMAX string,
HUMEDADMIN string,
HUMEDADMEDIA string,
VELVIENTO string,
DIRVIENTO string, 
RADIACION string, 
PRECIPITACION string) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ';'
STORED AS TEXTFILE
LOCATION 'hdfs://0.0.0.0:9000/user/hive';

但是,当我执行脚本时,我得到了这个错误

FAILED: ParseException line 4:1 character '' not supported here

我用另一种替代方法进行了测试,结果相同:

CREATE SCHEMA IF NOT EXISTS practica2;

CREATE TABLE IF NOT EXISTS practica2.station_data 
(IDPROVINCIA string,
SPROVINCIA string,
IDESTACION string, 
SESTACION string,
FECHA string,
DIA string,
TEMPMAX string,
HORMINTEMPMAX string,
TEMPMIN string,
HORMINTEMPMIN string,
TEMPMEDIA string,
HUMEDADMAX string,
HUMEDADMIN string,
HUMEDADMEDIA string,
VELVIENTO string,
DIRVIENTO string, 
RADIACION string, 
PRECIPITACION string) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ';';

LOAD DATA LOCAL INPATH './RIA_exportacion_datos_diarios_Huelva_20140206.csv' INTO TABLE practica2.station_data;

完整的报告如下:

almu@debian:~/Practicas_BigData/Practica2/Hive$ hive -f practica2.hql 
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-2.3.7.jar!/hive-log4j2.properties Async: true
OK
Time taken: 3.894 seconds
FAILED: ParseException line 4:1 character '' not supported here

当我从 Hive 命令行创建表时,它的创建没有问题。但是,当我执行脚本时,它总是失败。

哪里出错了?

更新:关于如果 ';' 的建议可能是错误的原因,我将这一行替换为:

FIELDS TERMINATED BY ',';

但错误仍在继续

【问题讨论】:

    标签: hive hiveql derby hadoop2


    【解决方案1】:

    尝试删除新行?

    CREATE SCHEMA IF NOT EXISTS practica2;
    
    CREATE EXTERNAL TABLE IF NOT EXISTS practica2.station_data (IDPROVINCIA string, SPROVINCIA string, IDESTACION string, SESTACION string, FECHA string, DIA string, TEMPMAX string, HORMINTEMPMAX string, TEMPMIN string, HORMINTEMPMIN string, TEMPMEDIA string, HUMEDADMAX string, HUMEDADMIN string, HUMEDADMEDIA string, VELVIENTO string, DIRVIENTO string, RADIACION string, PRECIPITACION string) 
    ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY ';'
    STORED AS TEXTFILE
    LOCATION 'hdfs://0.0.0.0:9000/user/hive';
    

    或者您的 sql 文件中可能有全角空间。见this post。如果您想摆脱全角空格,请手动键入 sql 文件,并避免从其他地方复制/粘贴。

    【讨论】:

    • 好的,它有效。现在我必须在上一个文件中找到错误
    • 我认为在create table 之后有新行并且列列表可能是语法错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 2017-11-12
    • 2019-12-07
    • 2015-07-14
    • 2017-05-11
    • 2011-05-08
    • 1970-01-01
    相关资源
    最近更新 更多