hive - hive 不支持合并功能
问题描述
试图将值从表更新到另一个表,这两个表具有相同的字段名称但不同的值,查询必须在任何普通数据库上正常工作,但在这里它返回
编译语句时出错:FAILED: ParseException line 1:0 cannot identify input near 'MERGE' 'INTO' 'FINAL'
MERGE
INTO FINAL
USING FIRST_STAGE
ON IMSI = FIRST_STAGE.IMSI and Site = FIRST_STAGE.Site
WHEN MATCHED THEN UPDATE SET
Min_Date = least(FIRST_STAGE.Min_Date, Min_Date),
Max_Date = greatest(FIRST_STAGE.Max_Date, Max_Date),
NoofDays = FIRST_STAGE.NoofDays + NoofDays,
Down_Link = FIRST_STAGE.Down_Link + Down_Link,
up_Link = FIRST_STAGE.up_Link + up_Link,
connection = FIRST_STAGE.connection + connection
WHEN NOT MATCHED THEN INSERT ( Min_Date,
Max_Date,
NoofDays,
IMSI,
Site,
Down_Link,
Up_Link,
Connection )
VALUES ( FIRST_STAGE.Min_Date,
FIRST_STAGE.Max_Date,
FIRST_STAGE.NoofDays,
FIRST_STAGE.IMSI,
FIRST_STAGE.Site,
FIRST_STAGE.Down_Link,
FIRST_STAGE.Up_Link,
FIRST_STAGE.Connection )
解决方案
Hive合并语句在Hortonworks distribution
.
merge statement
这些运行的先决条件是:最终表需要使用
transactional enabled ,ORC format ,and bucketed
.
AFAIK 如果Cloudera distribution
我们需要使用Kudu
从cloudera-5.10+
.
笔记: Upsert statement only works for Impala tables that use the Kudu storage engine.
- 我不认为我们现在可以运行
CDH
发行版中提到的合并语句。
推荐阅读
- angular - Angular 工作区 - 我可以在多个 package.json 中分离依赖项吗?
- graphql - 在 shopify 应用开发中自定义 ResourcePicker 数据
- python - 中间件内的烧瓶会话
- flutter - 如何在 Flutter 中向标题 ExpansionTile 添加渐变
- html - html表中列之间的空格太多
- javascript - VueJS:在 Vuex mapAction then 方法中未定义
- jquery - mdbAutocomplete - 新旧自动完成列表的叠加
- c++ - 哪种方式可以更有效地重载运算符,为什么?
- ios - 当媒体段数较少时,AVPlayer 是否播放视频块
- reactjs - 正如我们在 PHP 中使用的那样,如何在 html 元素的属性双引号中使用 JXS?