未提供配置单元合并无法识别“merge”“into”

shstlldc  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(440)

我的ambari版本是hdp2.5.2,hive版本是hive1.2.1000.2.5.3.0-37。
我试图看到合并操作在Hive中工作。我尝试了以下步骤:
在ambari上启用acid事务并重新启动配置单元服务
已创建包含员工旧工资的目标表。
创建表emp(id int,name string,sal int),按(id)聚集到4个存储桶中,存储为orc tblproperty('transactional'='true');
在上面插入了4条记录。
插入emp值(1,'',1000);
插入emp值(102,'xyz',2000);
插入emp值(103,'mno',3000);
插入emp值(104,'pqr',200);
已创建具有id和已更新工资的源表。这是一个加载了csv文件的普通表。
创建表emp_updated(id int,sal_new int)行格式分隔字段,以','结尾;
将路径“/data/emp\u updated.csv”中的数据加载到表emp\u updated中;
现在,我想用emp\u updated table中的sal值更新emp表的sal列,只要id匹配。我提出以下问题。
使用在e1上更新为e2的emp\ U作为e1合并到emp中。当匹配时,id=e2.id,然后更新set sal=e2.sal;
它给了我以下错误:

NoViableAltException(26@[])
        at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1084)
        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:437)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:320)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1219)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1260)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1156)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1146)
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:217)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:169)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:380)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:740)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:685)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
        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:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:233)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:148)
FAILED: ParseException line 1:0 cannot recognize input near 'merge' 'into' 'emp'

此版本不支持合并吗?接下来的步骤有什么问题?

lqfhib0f

lqfhib0f1#

https://cwiki.apache.org/confluence/display/hive/languagemanual+dml. 版本问题。我认为合并命令可以从hive2.2获得

相关问题