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

RDD转换算子:join方面的算子(leftOuterJoin、rightOuterJoin、fullOuterJoin)

文章目录

    • join方面的算子
      • 功能
      • 语法
      • 举例


join方面的算子

功能

实现 两个KV类型 的RDD之间按照K实现关联,将两个RDD的关联结果放入一个新的RDD中
假如是两个list进行合并使用 union,如果是KV类型的合并使用 join

语法

def join(self: RDD[Tuple[K,V]], otherRdd: RDD[Tuple[K,W]]) -> RDD[Tuple[K,(V,W)]]

join的过程,必然引发相同key值的数据汇总在一起,必然会引发shuffle 操作

举例

如何构造sc对象并创建RDD 参考文章:
【Spark中创建RDD的两种方式】Spark中如何获取sc对象、以及创建RDD的两种方式

rdd_singer_age = sc.parallelize([("周杰伦", 43), ("陈奕迅", 47), ("蔡依林", 41), ("林子祥", 74), ("陈升", 63)],
                                    numSlices=2)
rdd_singer_music = sc.parallelize(
        [("周杰伦", "青花瓷"), ("陈奕迅", "孤勇者"), ("蔡依林", "日不落"), ("林子祥", "男儿当自强"),
         ("动力火车", "当")], numSlices=2)
# join 是 转换算子  join 可以理解为内连接
joinRdd = rdd_singer_age.join(rdd_singer_music)
joinRdd.foreach(print)

# 左外连接
leftRdd = rdd_singer_age.leftOuterJoin(rdd_singer_music)
leftRdd.foreach(print)

# 右外连接
rightRdd = rdd_singer_age.rightOuterJoin(rdd_singer_music)
rightRdd.foreach(print)

# 全连接
fullRdd = rdd_singer_age.fullOuterJoin(rdd_singer_music)
fullRdd.foreach(print)
join展示结果:
('陈奕迅', (47, '孤勇者'))
('周杰伦', (43, '青花瓷'))
('蔡依林', (41, '日不落'))
('林子祥', (74, '男儿当自强'))
********left join 显示结果************
('周杰伦', (43, '青花瓷'))
('蔡依林', (41, '日不落'))
('陈升', (63, None))
('陈奕迅', (47, '孤勇者'))
('林子祥', (74, '男儿当自强'))
*********right join 显示结果***********
('动力火车', (None, '当'))
('周杰伦', (43, '青花瓷'))
('蔡依林', (41, '日不落'))
('林子祥', (74, '男儿当自强'))
('陈奕迅', (47, '孤勇者'))
********full join 显示结果*************
('动力火车', (None, '当'))
('周杰伦', (43, '青花瓷'))
('蔡依林', (41, '日不落'))
('陈升', (63, None))
('陈奕迅', (47, '孤勇者'))
('林子祥', (74, '男儿当自强'))

http://www.kler.cn/a/401004.html

相关文章:

  • Altenergy电力系统 status_zigbee SQL注入漏洞复现(CVE-2024-11305)
  • 2. kafka 生产者
  • 智慧社区平台系统提升物业管理效率与居民生活质量
  • 【JavaEE初阶 — 多线程】wait() notify()
  • html 图片转svg 并使用svg路径来裁剪html元素
  • 黑马智数Day10
  • Spring Boot汽车资讯:驾驭信息新浪潮
  • 【网络安全 | 漏洞挖掘】在重置密码流程利用请求头实现ATO
  • 软件测试丨Java常用库
  • webgis与纯前端相比如何?
  • 网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机
  • 【pytest】pytest注解使用指南
  • AI 技术在旅游和酒店行业的应用前景
  • 如何利用WebSockets实现高效的实时通信应用
  • docker 安装之 windows安装
  • MySQL深度剖析-索引原理由浅入深
  • Qt-QWidget中的属性和方法
  • 【Oracle篇】掌握SQL Tuning Advisor优化工具:从工具使用到SQL优化的全方位指南(第六篇,总共七篇)
  • 【第六课】Rust所有权系统(二)
  • 【网络安全面经】技术性问题3
  • 基于Spring Boot+Vue的多媒体素材管理系统的设计与实现
  • 计算机网络学习笔记-3.2介质访问控制
  • vxe-table 4.9+ 实现在表格列中直接拖拽排序,列拖拽排序
  • 23种设计模式-访问者(Visitor)设计模式
  • MySQL 日志 主从复制
  • 多仓库分支同步策略:方法与工具全解析