Spark 两个分区数据帧之间的共置连接

2024-04-22

对于以下两个之间的连接DataFrames在 Spark 1.6.0 中

val df0Rep = df0.repartition(32, col("a")).cache
val df1Rep = df1.repartition(32, col("a")).cache
val dfJoin = df0Rep.join(df1Rep, "a")
println(dfJoin.count)

这个连接是否不仅是共同分区的,而且是共同定位的?我知道对于 RDD,如果使用相同的分区器并在相同的操作中进行洗牌,则连接将位于同一位置。但是数据框呢?谢谢。


[https://medium.com/@achilleus/https-medium-com-joins-in-apache-spark-part-3-1d40c1e51e1c] https://medium.com/@achilleus/https-medium-com-joins-in-apache-spark-part-3-1d40c1e51e1c%5D

根据上面提供的文章链接 Sort-Merge join 是默认的 join,想添加重要的一点

为了获得排序合并连接的理想性能,重要的是所有 具有相同连接键值的行在同一行中可用 分割。这为臭名昭著的分区交换(shuffle)提供了保证 执行者之间。并置分区可以避免不必要的数据 洗牌。数据需要均匀分布在连接键中。这 连接键的数量足够唯一,因此它们可以相等 分布在整个集群中以实现最大并行度 可用分区

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 两个分区数据帧之间的共置连接 的相关文章

  • 阶乘的 Scala 排列

    我怎样才能找到n Scala 中某些字母的排列 Scala 2 9 RC1 scala gt abc permutations toList res58 List String List abc acb bac bca cab cba
  • 获取:导入 Spark 模块时出错:没有名为“pyspark.streaming.kafka”的模块

    我需要将从 pyspark 脚本创建的日志推送到 kafka 我正在做 POC 所以在 Windows 机器上使用 Kafka 二进制文件 我的版本是 kafka 2 4 0 spark 3 0 和 python 3 8 1 我正在使用 p
  • 对多列应用窗口函数

    我想执行窗口函数 具体为移动平均值 但针对数据帧的所有列 我可以这样做 from pyspark sql import SparkSession functions as func df df select func avg df col
  • Spark - 如何在本地运行独立集群

    是否有可能运行Spark独立集群仅在一台机器上进行本地操作 这与仅在本地开发作业基本上不同 即local 到目前为止 我正在运行 2 个不同的虚拟机来构建集群 如果我可以在同一台机器上运行一个独立的集群 该怎么办 例如三个不同的 JVM 正
  • Scala 如何忽略 Java 的检查异常?

    例如如果调用 JavaThread sleep这会抛出一个已检查的InterruptedException来自 Scala 源文件 然后不需要将调用包含在 Scala 中try catch Scala 如何删除将调用包围在 a 中的规则tr
  • 任务和分区之间有什么关系?

    我能说 么 Spark任务的数量等于Spark分区的数量吗 执行器运行一次 执行器内部的批处理 等于一个任务吗 每个任务只产生一个分区 1 的重复 并行度或可以同时运行的任务数量由以下公式设置 Executor实例的数量 配置 每个执行器的
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • Spark 结构化流中具有不同计数的聚合抛出错误

    我正在尝试在 Spark 结构化流中获取 Parentgroup childgroup 和 MountingType 组的唯一 id 代码 下面的代码抛出错误 withWatermark timestamp 1 minutes val ag
  • PySpark Yarn 应用程序在 groupBy 上失败

    我正在尝试在 Yarn 模式下运行一个处理大量数据的作业 2TB 从谷歌云存储读取 管道可以总结如下 sc textFile gs path json map lambda row json loads row map toKvPair g
  • 使用多行选项和编码选项读取 CSV

    在 azure Databricks 中 当我使用以下命令读取 CSV 文件时multiline true and encoding SJIS 似乎编码选项被忽略了 如果我使用multiline选项 Spark 使用默认值encoding那
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • fetchsize和batchsize对Spark的影响

    我想通过以下方式控制 RDB 的读写速度Spark直接 但标题已经透露的相关参数似乎不起作用 我可以得出这样的结论吗fetchsize and batchsize我的测试方法不起作用 或者它们确实会影响阅读和写作方面 因为测量结果基于规模是
  • 懒惰背景下的变革与行动

    正如 Learning Spark 闪电般快速的大数据分析 一书中提到的 由于 Spark 计算 RDD 的方式不同 转换和操作也有所不同 在对惰性进行一些解释之后 我发现转换和操作都是惰性地进行的 那么问题来了 这句话的意思是什么 对比
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 在 Spark 中计算逻辑回归系数的标准误差

    我知道这个问题之前已经被问过here https stackoverflow com questions 37816701 calculating standard error of estimate wald chi square sta
  • 如何为 Spark RDD 中的元素分配唯一的连续编号

    我有一个数据集 user product review 并希望将其输入到 mllib 的 ALS 算法中 该算法需要用户和产品是数字 而我的是字符串用户名和字符串SKU 现在 我获取不同的用户和 SKU 然后在 Spark 外部为它们分配数
  • 在 Scala 中,使用“_”和使用命名标识符有什么区别?

    为什么当我尝试使用时会出现错误 而不是使用命名标识符 scala gt res0 res25 List Int List 1 2 3 4 5 scala gt res0 map gt item toString
  • scala play框架如何对异步控制器进行单元测试

    使用 Scala play 2 5 版并尝试遵循以下文档中的单元测试控制器指南 https www playframework com documentation 2 5 x ScalaTestingWithScalaTest https
  • Akka 2 中的调度程序有哪些差异和使用模式?

    我很难理解它们的差异和推荐用法Akka 2 中的调度程序 http doc akka io docs akka current scala dispatchers html 我想我明白了平衡调度程序 http doc akka io api

随机推荐

  • Angular 4显示当前时间

    在 Angular 4 变化检测系统中显示当前时间的正确 规范 方法是什么 问题如下 根据定义 当前时间每时每刻都在不断变化 但 Angular 4 变更检测系统无法检测到它 因此 我认为有必要明确调用ChangeDetectorRef d
  • 如何忽略 Rails 中特定操作的真实性令牌?

    当我不想检查真实性令牌的特定操作时 如何告诉 Rails 跳过检查它 轨道 5 2 您可以使用相同的skip before action https api rubyonrails org classes ActionController
  • C# OpenFileDialog 非模态可能

    是否可以创建 拥有非模式 net OpenFileDialog 我在主对话框中有一个 UI 元素 始终需要可供用户按下 No 打开文件对话框 http msdn microsoft com en us library system wind
  • 领域未获取数据

    我在使用领域时遇到问题 findAll 和 findAllAsync 不会从领域返回任何数据 我正在像这样从主线程更新领域对象 public void updatePhoto final int ticketID realm beginTr
  • 合并多列上的两个 pandas 数据框

    我有两个数据框 gt gt gt df1 Output col1 col2 col3 col4 a abc 10 str1 b abc 20 str2 c def 20 str2 d abc 30 str2 gt gt gt df2 Out
  • Spring boot 2.0.2,使用Spring数据如何从实体验证中获取消息

    我正在构建一个 Spring Boot 2 0 2 Web 服务 实体中有许多我不想为空的字段 当尝试保留具有无效字段的实体时 如何从该特定字段获取消息 例如 我有一个实体 Entity Table name users public cl
  • 嵌入资源名称

    在C 中 嵌入资源名称的默认行为是这样的
  • 重定向后执行函数 - javascript

    好的 我的页面 MyPage 上有一个简单的按钮 可以淡出当前 div fade 1 并淡入另一个 div fade 2 我现在意识到 我可能想直接从其他地方转到该页面 淡出 2 我可以通过以下方式重定向我的页面window locatio
  • NodeJS Mongoose 总是返回一个空数组

    我尝试过使用find and findOne并且两者都没有返回文件 find返回一个空数组findOne正在返回null err在这两种情况下null以及 这是我的连接 function connectToDB mongoose conne
  • 有没有一种优雅的方法可以在 Django 管理中为 M2M 字段设置 list_filter ?

    如果我有一个披萨模型和一个浇头模型 它们之间有 m2m 是否有一些快速优雅的方法可以为它们中的任何一个添加到管理列表页面 为包含特定浇头 包含的所有浇头的所有比萨饼添加列表过滤器在某个披萨里 内置的 list filter 不支持 m2m
  • 重命名 cassandra 1.2 中的键空间和列族

    如何在 cassandra 1 2 中重命名键空间和列族 我知道不再支持 cassandra cli 重命名 api 如何在 Cassandra 中重命名键空间 https stackoverflow com questions 76491
  • 谷歌地图响应式调整大小

    我试图让谷歌地图响应并调整大小 同时在窗口调整大小时保持其中心 我阅读了其他堆栈问题 例如 响应式谷歌地图 https stackoverflow com questions 15421369 responsive google map a
  • 自动缩放但仍处理 WM_DPICHANGED

    我在使用 C 编写的非常复杂的 WinForms 应用程序时遇到了一些问题 我希望应用程序在 DPI 更改时让 Windows 自动缩放 但我仍然需要挂钩 WM DPICHANGED 事件才能缩放一些自定义绘制的文本 困境是 如果我让应用程
  • 在 R 中将因子矩阵转换为二进制(指标)矩阵的最有效方法

    我可以想到几种方法来转换这种类型的矩阵 数据框 dat data frame x1 rep c a b 100 x2 rep c x y 100 head dat x1 x2 1 a x 2 b y 3 a x 4 b y 5 a x 6
  • 为 Vim 命令行创建一个映射,在插入寄存器之前转义寄存器的内容

    假设我有一个这样的文档 并且我想搜索所有出现的 URL Vim resources http example com search q vim q q http example com search q vim 我不想完整地输入它 所以我将
  • 分配后变量的值未更新

    var a 2 var b a console log b 2 a 5 console log b 2 问 为什么即使为变量 a 分配了不同的值 变量 b 的值仍为 2 console log b 回报2因为当您访问原始类型时 您直接处理它
  • pytorch 中的 keras.layers.Masking 相当于什么?

    我有时间序列序列 我需要通过将零填充到矩阵中并在 keras 中使用 keras layers Masking 来将序列的长度固定为一个数字 我可以忽略这些填充的零以进行进一步的计算 我想知道它怎么可能在 Pytorch 中完成 要么我需要
  • 构建网站翻译文件

    我在建立网站时多次遇到这个问题 我将以使用 PHP 和 Laravel 为例进行解释 但这个问题在多个平台中都很常见 这已经在几个问题中得到了解决 post1 https stackoverflow com questions 317854
  • Doctrine Join 条件类型中WITH 和ON 有什么区别?

    我正在寻找有关学说子句的WITH 和ON 条件类型之间差异的更好解释 我发现有关此问题的文档非常糟糕 但我仍然存有疑问 在我看来 这是原则 1 的遗留物 那时ON用于重新定义关系的连接条件 而WITH用于在默认条件的基础上添加更多连接条件
  • Spark 两个分区数据帧之间的共置连接

    对于以下两个之间的连接DataFrames在 Spark 1 6 0 中 val df0Rep df0 repartition 32 col a cache val df1Rep df1 repartition 32 col a cache