当前位置: 首页 > news >正文

大数据学习(14)-Map Join和Common Join

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞


什么是Map Join和Common Join。

在解释这个问题之前,我们先了解一下Hive中的两种Join操作:Map Join和Common Join。

  1. Map Join:在Map阶段进行Join操作。它先将小表(或小表列表)读入内存,然后在Map过程中,对于每个大表的数据,如果它与内存中的小表有匹配的键值,那么就将这个大表的数据与小表的数据关联起来,输出为一个键值对。Map Join适用于小表和大数据的关联,因为它直接在Map阶段进行了关联操作,避免了在Reduce阶段进行大规模的排序和扫描。
  2. Common Join:又叫Reduce Join,是在Reduce阶段进行Join操作的通用方式。对于每个Map任务,它都会将带有相同键的数据发送到同一个Reduce任务中,然后在Reduce任务中进行Join操作。Common Join适用于大数据和小数据的关联,因为它在Reduce阶段进行关联操作,避免了在Map阶段进行大规模的排序和扫描。

现在我们来解释一下“生成一个条件任务(Conditional Task)”。在Hive中,条件任务是一种任务类型,它可以在编译阶段根据一些条件生成子任务列表。在这个问题中,条件任务会根据数据的大小和查询需求来生成Map Join任务和Common Join任务。也就是说,Hive会根据数据和查询的特点,选择最合适的Join策略。

对于一些适合Map Join的查询,Hive会在条件任务下生成一个计划列表,这个列表中只包含Map Join任务。而对于一些适合Common Join的查询,Hive会在条件任务下生成一个计划列表,这个列表中只包含Common Join任务。

注意:在一些情况下,Hive可能无法确定哪个Join策略更优,所以它会生成两种类型的任务,然后在执行阶段通过参数来选择最合适的任务类型。这也是为什么问题中说“其下会包含一个计划列表,计划列表中包含转换后的Map Join任务以及原有的Common Join任务”。

为了搞清楚这个,整整掉了一整天头发。

http://www.lryc.cn/news/198811.html

相关文章:

  • Docker安装ES7.14和Kibana7.14(无账号密码)
  • Zynq中断与AMP~双核串口环回之PS与PL通信
  • 【一:实战开发testng的介绍】
  • C现代方法(第9章)笔记——函数
  • 【算法练习Day23】 复原 IP 地址子集子集 II
  • fastadmin框架token验证
  • 了解 AI :了解 AI 方面的一些术语 (中英文对照)
  • 【Python学习笔记】对象、方法
  • 企业IT资产设备折旧残值如何计算
  • Linux性能优化--性能工具:下一步是什么
  • 网工内推 | IT主管、高级网工,上市公司,必须持有HCIE认证
  • bulldog 靶机
  • 如何借助边缘智能网关打造智慧城市便民驿站
  • 谈谈电商App的压测
  • ​VsCode修改侧边栏字体大小——用缩放的方法​
  • 基于Java的农资采购销售管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 【AIGC核心技术剖析】扩大富有表现力的人体姿势和形状估计SMPLer-X模型
  • 【C++面向对象】1. 类、对象
  • PAM从入门到精通(十三)
  • Stable Diffusion WebUI几种解决手崩溃的方法
  • kr 第三阶段(一)16 位汇编
  • power point导出pdf保留字体
  • 云务器迁移(腾讯云>华为云)
  • [USACO11MAR] Brownie Slicing G题解(二分+二维前缀和+矩阵分割)
  • 【每日一题】—— B. Arrays Sum (Grakn Forces 2020)
  • XTU-OJ 1328-数码和
  • 混入组件 (mixin)
  • ubuntu18.04 RTX3060 rangnet++训练
  • HZOJ-72:猜拳
  • 【Django 03】QuerySet 和 Instance应用