【问题标题】:Second hive query is failing due to FAILED: ParseException line 5:101 missing EOF in first hive query由于失败,第二个配置单元查询失败:ParseException 行 5:101 在第一个配置单元查询中缺少 EOF
【发布时间】:2018-10-17 07:55:58
【问题描述】:

我正在处理下面的 .hql 文件中的异常处理是我的脚本

use galaxy60_1000;

CREATE EXTERNAL TABLE scd_member1 (scd_member_key string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/AutomationFiles/galaxy60_1000/scd_member

CREATE EXTERNAL TABLE scd_member3 (scd_member_key string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/AutomationFiles/galaxy60_1000/scd_member';

问题陈述

  1. 这里的第一个 hive 查询由于
  2. 而失败

失败:ParseException 第 5:101 行缺少 EOF

这是正确的,但第二个配置单元查询不起作用,因为它试图在查询下方执行

CREATE EXTERNAL TABLE scd_member3 (scd_member_key string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ''

我真的很困惑,为什么它不考虑我在脚本中编写的查询

【问题讨论】:

  • 能否请您检查一下您的问题。除了表名,我看不出有什么区别。第一个查询中可能缺少分号
  • 有什么问题??我在第一次查询中明确犯了错误,因为如标题中所述,我正在处理异常
  • 好吧..明白了..所以你想通过引入语法错误来处理异常?..这取决于解析器。

标签: hive hql


【解决方案1】:

我真的很困惑为什么它不考虑我在我的 脚本

您的第一个CREATE 语句末尾缺少',而; 将两个命令分开。

一般来说,synthax 分析器不能一次找到所有的错误,第一个发现的 synthax 错误会隐藏其余的。在脚本的情况下,可能会根据错误的解析代码继续执行!

可以肯定的是,您只能修复第一个错误,然后看看会怎样。

应该是这样的:

use galaxy60_1000;

CREATE EXTERNAL TABLE scd_member1 (scd_member_key string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/AutomationFiles/galaxy60_1000/scd_member';

CREATE EXTERNAL TABLE scd_member3 (scd_member_key string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/AutomationFiles/galaxy60_1000/scd_member';

【讨论】:

    猜你喜欢
    • 2017-06-25
    • 2020-01-24
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多