Spark zipWithIndex 并行实现安全吗?

2024-03-01

如果我有一个文件,并且每行做了一个 RDD zipWithIndex,

([row1, id1001, name, address], 0)
([row2, id1001, name, address], 1)
...
([row100000, id1001, name, address], 100000)

如果重新加载文件,我能否获得相同的索引顺序?由于它是并行运行的,其他行可能会以不同的方式进行分区?


RDDs 可以排序,因此也有顺序。该命令用于创建索引.zipWithIndex().

每次获得相同的顺序取决于之前的调用在程序中执行的操作。文档提到.groupBy()可以破坏顺序或生成不同的顺序。可能还有其他调用也执行此操作。

我想你可以随时打电话.sortBy()打电话之前.zipWithIndex()如果您需要保证特定的订购。

这在.zipWithIndex() scala API docs https://spark.apache.org/docs/1.4.0/api/java/org/apache/spark/rdd/RDD.html#zipWithIndex()

public RDD<scala.Tuple2<T,Object>> zipWithIndex()压缩这个 RDD 其元素索引。排序首先基于分区 索引,然后是每个分区内项目的排序。所以 第一个分区中的第一个项目的索引为 0,最后一个项目的索引为 0 最后一个分区接收最大的索引。这类似于 Scala 的 zipWithIndex 但它使用 Long 而不是 Int 作为索引 类型。当此RDD包含时,该方法需要触发spark作业 多个分区。

请注意,某些 RDD(例如 groupBy() 返回的 RDD)不会 保证分区中元素的顺序。分配给每个的索引 因此,元素是不能保证的,如果 RDD 是这样的,甚至可能会改变 重新评估。如果需要固定顺序来保证相同 索引分配,您应该使用 sortByKey() 对 RDD 进行排序或保存它 到一个文件。

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

Spark zipWithIndex 并行实现安全吗? 的相关文章

随机推荐

  • 当“使用其他帐户”登录时,Google Sign in 不会返回任何结果

    这似乎是一个基本功能 但遵循登录教程 https developers google com identity sign in android sign in 仅当我选择设备上已注册的帐户时 它才有效 选择后 使用另一个帐户 并完成一些步骤
  • 使用 jQuery fadeIn 和 fadeOut 的 Google Maps API V3 InfoBox

    我在网上到处搜索 但找不到使用 jQuery 淡出 Google 地图中的 InfoBox InfoWindow 的教程或示例 而不是实际框 窗口的内容 这是我的代码 我不确定我做错了什么 但有些东西似乎也不正确 google maps e
  • 通过 Windows Scheduler 运行 python 脚本不起作用

    我正在尝试通过 Windows 任务计划程序自动执行 python 脚本 但它不起作用 在我的 python 脚本的末尾 应该创建两个 CSV 文件 但没有创建 我尝试了以下方法 1 将我的python exe的地址复制到Program S
  • 将 Tensorflow 数据集 API 创建的数据集拆分为训练和测试?

    有谁知道如何将 Tensorflow 中的数据集 API tf data Dataset 创建的数据集拆分为测试和训练 假设你有all dataset的变量tf data Dataset type test dataset all data
  • 使用缓存文件还是一个以上的 HTTP 请求?

    在所有 加速你的网站 网站和书籍上 他们总是告诉我们不惜一切代价尽量减少 HTTP 请求 这很好 但如果这意味着在每个页面上你都必须一次又一次地重新加载 120kb 因为用户缓存是空的怎么办 如果我在网站的每个页面上使用 5 个 js 文件
  • Chrome 调试器 - 如何关闭 console.log 消息分组?

    比如说 在我的 Google Chrome 扩展中我这样做 console log msg Chrome 调试器将类似的消息分组如下 有没有什么办法可以将其关闭并让消息按原样发布 它只会折叠相同的连续行 我不认为这有什么问题 但是通过控制台
  • Powershell 5 中的哪些变化改变了块大括号的含义

    我们最近将构建服务器上的 Powershell 版本从 4 0 更新到了 5 0 这一更改导致我们的一个构建脚本开始以意外的方式失败 该代码用于确定我们的产品中应包含哪些用户指南 该代码处理一个 xml 节点列表 这些节点描述了所有可用文档
  • Java 中包私有类的改进

    根据我的经验 Java 中类的包私有可见性被证明是多余的 包私有可见性似乎基于这样一个前提 几乎被另一个类私有使用的类很可能保存在同一个包中 通常情况并非如此 有人正在探索改进的访问修饰符 替代机制吗 尝试使用包私有可见性时出现问题 我们很
  • 在 apache 模块中转换 PHP 类

    我在 php5 中编写了一个复杂的系统 许多类使用静态方法并包含其他文件 现在我想分发 ant 我会选择模块方式 所以我喜欢创建一个像 myFramework so 这样的模块并将其包含在 Apache 中 也许 之后 当我编写一些 php
  • Angular AOT 和 Rollup - 未捕获的 ReferenceError:未定义导出

    我正在尝试实现 Angular 的 AOT 教程 https angular io docs ts latest cookbook aot compiler html https angular io docs ts latest cook
  • 比较匹配器在混合数字类型上失败

    在普通 Scala 中 以下断言通过 assert 1D gt 0F assert 1F gt 0 assert 1L gt 0 assert 1 gt 0 toShort assert 1 toShort gt 0 toChar 然而 S
  • XSLT 连接字符串,删除最后一个逗号

    我需要使用 XSLT 构建一个字符串 并用逗号分隔每个字符串 但在最后一个字符串后面不包含逗号 在下面的示例中 如果我有 分发 节点而不是 注释 节点 那么我将有一个尾随逗号 我不知道如何构建一个字符串作为变量 然后截断 XSLT 中的最后
  • 让php将句子分解为单词

    我可能误解了文档 但是当我编码时 explode here s a sentence 2 我最终 Array 0 gt here s 1 gt a sentence with a few words in it 有没有办法让爆炸回来 Arr
  • 为什么这段 PHP 代码只回显“Array”?

    这是我的代码 if isset POST check AND POST check First errormessage array if empty POST full name strlen POST full name lt 4 er
  • Windows服务“自托管”WCF:压缩?

    在 IIS 中使用 WCF 压缩我可以找到文档 但它面向使用 IIS 功能 我可以找到人们谈论他们如何编写自己的压缩处理程序 但这一切看起来都很定制 是否有压缩 WCF 的最佳实践 我们正在使用 http 绑定 编辑 将其设置为维基 没有任
  • Dart 中的字符串文字类型类似物

    我知道在 Dart 中没有字符串文字类型 例如 interface IButtonProps readonly variant primary secondary readonly size small regular big a litt
  • 以编程方式添加来自 Laravel 包的 CSRF 检查的异常

    问题简而言之 我正在寻找一种方法来删除VerifyCsrfToken来自包内的全局中间件管道without用户必须修改App Http Middleware VerifyCsrfToken 这可能吗 用例 我正在开发一个包 可以轻松地将推送
  • 查询 DynamoDB

    我有一个 DynamoDB 表 其中一个字母数字字符串作为哈希键 例如 d4ed6962 3ec2 4312 a480 96ecbb48c9da 我需要根据表中的另一个字段查询表 因此我需要查询来选择所有键 例如我的字段 x 位于 dat
  • 发生托管异常时“无可用源” - WPF Visual Studio 2010

    由于某种原因 我的 Visual Studio 2010 没有在我自己的代码上加载调试符号 我正在使用默认的 WPF 应用程序解决方案 使用我正在开发的示例 WPF 应用程序 并在调试模式下运行 当我进入调试状态时 我可以单步执行我的代码
  • Spark zipWithIndex 并行实现安全吗?

    如果我有一个文件 并且每行做了一个 RDD zipWithIndex row1 id1001 name address 0 row2 id1001 name address 1 row100000 id1001 name address 1