【问题标题】:Parse Error- NoViableAltException found when running apache hive解析错误 - 运行 apache hive 时发现 NoViableAltException
【发布时间】:2016-06-13 14:02:31
【问题描述】:
NoViableAltException(26@[])
        at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1074)
        at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:202)
        at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:396)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:308)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1122)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1170)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049)
        at `enter code here`org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:213)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:165)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:376)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:311)
        at org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:409)
        at org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:425)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:714)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
FAILED: ParseException line 3:0 cannot recognize input near 'MERGE' 'INTO' 'scrap_data'

Getting the above exception. in order to resolve the same issue, i have fallowed 
https://stackoverflow.com/questions/18640760/hive-parseexception-cannot-recognize-input-near-end-string

As per this blog. i made the changes but did not work for me.
Help me with this issue. `enter code here`
CREATE TABLE IF NOT EXISTS tbALPartNr(
pn_id int,
category int,
pn varchar(30),
price decimal(18, 8),
pn_desc varchar(500),
scrap_limit smallint,
scrap_percent decimal(18, 0),
price_limit decimal(18, 8),
plant_name varchar(250)
)
MERGE INTO scrap_data.tbALPartNr t
USING(SELECT distinct[scrap_data.tbALPartNr.pn],
count([scrap_data.tbALPartNr.plant_name])as plants
FROM scrap_data.tbALPartNr group by [scrap_data.tbALPartNr.pn]) s
ON (t.scrap_data.tbALPartNr.pn=s.scrap_data.tbALPartNr.pn)
WHEN MATCHED THEN
UPDATE SET t.category=s.plants;

以上是我的 .hql 脚本中的代码。当我运行脚本时出现错误,你能帮我解决这个问题吗? 在下面的博客中发现了同样的问题,但无助于解决我的问题。 Hive ParseException - cannot recognize input near 'end' 'string'

没有这个逻辑,脚本可以正常工作。

MERGE INTO scrap_data.tbALPartNr t
    USING(SELECT distinct[scrap_data.tbALPartNr.pn],
    count([scrap_data.tbALPartNr.plant_name])as plants
    FROM scrap_data.tbALPartNr group by [scrap_data.tbALPartNr.pn]) s
    ON (t.scrap_data.tbALPartNr.pn=s.scrap_data.tbALPartNr.pn)
    WHEN MATCHED THEN
    UPDATE SET t.category=s.plants;

任何人都可以帮助解决这个问题。

【问题讨论】:

  • 您确定支持在 hive 中合并吗? issues.apache.org/jira/browse/HIVE-10924这里的问题还没有解决
  • Roshini 我不确定 HIVE 是否支持 MERGE .. 仍然如此。合并到 scrap_data.tbALPartNr t 使用(SELECT distinct[scrap_data.tbALPartNr.pn],计数([scrap_data.tbALPartNr.plant_name])作为植物 FROM scrap_data.tbALPartNr group by [scrap_data.tbALPartNr.pn]) s ON(t.scrap_data .tbALPartNr.pn=s.scrap_data.tbALPartNr.pn) 匹配后更新集 t.category=s.plants;
  • 好吧,如果没有合并支持,那么您将无法在 hive 中执行此操作。 :/ 这意味着 hive 不存在该关键字。 (我不确定我在文档中找不到这个,但又一次我看起来不够努力......只是一个简单的谷歌......我以为你会知道,因为你正在使用它)
  • 是的,我用谷歌搜索了它。我没有找到任何带有合并的语法或使用合并在 hive 中完成的任何转换。这是我第一次尝试使用它。但在此错误之后无法继续进行。如果了解它的用法。请在此页面上写下。提前致谢
  • 嗯,根据 jira,它应该在 hive 的下一个版本中可用......所以如果你跟踪它,你就会知道。您现在可以选择下一条评论作为答案吗?

标签: hive


【解决方案1】:

此问题尚未解决:issues.apache.org/jira/browse/HIVE-10924 Hive 中不存在当前功能。

【讨论】:

    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多