Apache Hive--join 操作| 学习笔记

简介: 快速学习 Apache Hive--join 操作

开发者学堂课程【大数据 Hive 教程精讲Apache Hive--join操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/90/detail/1379


Apache Hive--join操作

 

Hive join

Hive 中除了支持和传统数据库中一样的内关联、左关联、右关联、全关联,还支持LEFTSEMI JOIN CROSS JOIN,但这两种 JOIN 类型也可以用前面的代替。

Hive支持等值连接(a.id=b.id),不支持非等值(a.id>b.id)的连接,因为非等值连接非常难转化到 map/reduce 任务。另外,Hive 持多2个以上表之间的join

 

join 查询时,需要注意几个关键点:

l  join 时,每次 map/reduce 任务的逻辑;

reducer会缓存join序列中除了最后一个表的所有表的记录,再通过最后一个表将结果序列化到文件系统。这一实现有助于在 reduce 端减少内存的使用量。实践中,应该把最大的那个表写在最后(否则会因为缓存浪费大量内存)

l  LEFTRIGHT FULL OUTER 关键字用于处理 join 中空记录的情况

SELECT a.val, b.val FROM a LEFT OUTER JOIN b ON (a.key=b.key)

对应所有a表中的记录都有一条记录输出。输出的结果应该是 a.valb.val,当a.key=b.key时,而当 b.key 中找不到等值的 a. key 记录时也会输出:

a. valNULL

1.png

2.png**hive 中的特别 join

select * from a left semi join b on a.id = b.id;

3.png

相当于

select a.id,a.name from a where a.id in (select b.id from b);hive中效率极低

select a.id, a.name from a join b on (a.id = b.id);

select * from a inner join b on a.id=b.id;

cross join (##慎用)

返回两个表的笛卡尔积结果,不需要指定关联键

select a.*,b.* from a cross join b;

相关文章
|
6月前
|
Java API Apache
使用 Apache PDFBox 操作PDF文件
Apache PDFBox库是一个开源的Java工具,专门用于处理PDF文档。它允许用户创建全新的PDF文件,编辑现有的PDF文档,以及从PDF文件中提取内容。此外,Apache PDFBox还提供了一些命令行实用工具。
494 6
|
6月前
|
Linux 网络安全 Apache
Centos下操作Apache httpd
Centos下操作Apache httpd
125 0
|
30天前
|
SQL 分布式计算 Hadoop
Apache Hive 帮助文档
Apache Hive 帮助文档
59 9
|
6月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到报错:Apache Kafka Connect错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
211 5
|
6月前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
|
SQL 关系型数据库 MySQL
怎么使用 Go 语言操作 Apache Doris
怎么使用 Go 语言操作 Apache Doris
907 0
|
6月前
|
SQL 消息中间件 Kafka
Apache Hudi测试、运维操作万字总结
Apache Hudi测试、运维操作万字总结
267 1
|
SQL 关系型数据库 MySQL
Hive报错:HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
Hive报错:HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
732 0
|
6月前
|
SQL JSON 算法
hive学习笔记
hive学习笔记

推荐镜像

更多