如何从迭代器创建 Spark RDD?

2024-04-12

为了说清楚,我不是从像这样的数组/列表中寻找RDD

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); // sample
JavaRDD<Integer> rdd = new JavaSparkContext().parallelize(list);

如何从 java 迭代器创建 Spark RDD 而无需完全缓冲它在记忆中吗?

Iterator<Integer> iterator = Arrays.asList(1, 2, 3, 4).iterator(); //sample iterator for illustration
JavaRDD<Integer> rdd = new JavaSparkContext().what("?", iterator); //the Question

附加问题:

是否要求源可重复读取(或能够多次读取)才能为 RDD 提供弹性?换句话说,由于迭代器基本上是一次性读取的,因此是否有可能从迭代器创建弹性分布式数据集(RDD)?


正如其他人所说,您可以使用 Spark Streaming 做一些事情,但对于纯粹的 Spark 来说,您不能,原因是您所要求的内容违背了 Spark 的模型。让我解释。 为了分配和并行化工作,spark 必须将其分成块。从 HDFS 读取时,HDFS 会为 Spark 完成“分块”,因为 HDFS 文件是按块组织的。 Spark 通常会为每个块生成一个任务。 现在,迭代器只提供对数据的顺序访问,因此 Spark 不可能将其组织成块无需将其全部读入内存.

也许可以构建一个具有单个可迭代分区的 RDD,但即便如此,也无法确定是否可以将可迭代的实现发送给工作人员。当使用 sc.parallelize() 时,spark 创建的分区实现serializable因此每个分区都可以发送给不同的工作人员。可迭代可以通过网络连接或本地文件系统中的文件进行,因此除非它们缓冲在内存中,否则它们无法发送给工作人员。

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

如何从迭代器创建 Spark RDD? 的相关文章

随机推荐

  • 在 Apache 中使用 mod_rewrite 处理中文字符

    我无法找到有关使用中文字符的 Apache mod rewriting 的信息 我能找到的所有信息都与数字有关 我想重写 character php character 宠 其中字符是搜索结果 因此会有所不同 character 宠 这是我
  • 共享主机帐户中的 php.ini 配置更改

    我尝试使用 htaccess ini set 覆盖默认的 php ini 配置 但在执行脚本时配置没有得到反映 这里 PHP 安装为 fastcgi 并位于共享托管帐户中 有什么方法可以更改 php ini 设置 或者我需要将我的帐户升级到
  • Rails 2.3:如何将此 SQL 语句转换为named_scope

    弄清楚如何从这个 SQL 查询创建一个named scope 有点困难 select from foo where id NOT IN select foo id from bar AND foo category ORDER BY RAN
  • mysql如何连接两个表?

    我有两张桌子 services id client service and clients id name email 如何列出餐桌服务并汇总顾客餐桌上的顾客姓名 表中的客户服务字段有客户表中客户的id 我很感谢你现在的帮助 SELECT
  • 是否可以从maven编译grunt项目?

    我正在尝试从 Maven 中执行 grunt 任务 而不需要安装 Node js 或任何东西 这是因为我不希望 Jenkins 打包我的工件 并且我无法在那台机器上安装 Node js 我知道使用 npm 和一些命令就可以让它工作很容易 但
  • 如何使用 Java 将 JMS 消息排入 Oracle AQ 中

    我有一个队列类型为 SYS AQ JMS TEXT MESSAGE 的 Oracle AQ 我想做的是将文本从 java 应用程序插入到提到的队列中 等效的 SQL 查询是 declare r enqueue options DBMS AQ
  • Cytoscape.js 的性能和布局

    我正在测试 Cytoscape js 的渲染性能 我的图表包含大约 5000 个节点和 5000 个边 没有 x y 位置 使用 Cytoscape js 的自动布局 但欧拉布局扩展在渲染完所有节点和边后需要花费超过15秒的时间 在下次操作
  • Google Plus 登录集成错误 iOS

    您好 我正在尝试在我的 iOS 应用程序上集成 google 登录 我已按照此说明进行操作link https developers google com mobile ios getting started 这些示例工作正常 但是当我尝试
  • 谷歌的 oauth2 范围有深入研究吗?

    我正在寻找有关 google 使用 oauth 范围的一些深入的详细信息 我的云端硬盘应用程序is工作 所以我可以简单地使用范围 但是我有以下详细问题 问题 我指定了两次范围 一旦进入我的应用程序 然后也进入 API 安慰 这两个范围分别有
  • MS Graph API 中的分页

    图形API分页 https graph microsoft io en us docs concepts paging解释响应将包含一个字段 odata nextLink其中将包含一个skiptoken指向下一页内容 当我测试 API 时
  • Instagram API。 “无法到达回调 URL”

    好的 伙计们 这是设置 我正在开发一个节日网站 需要使用 Instragram API 客户希望自动从 Instagram 加载使用特定主题标签的图片 没问题 Instagram API 支持此功能以及更多功能 但是 当我尝试进行订阅 通过
  • 我可以编写一个断言多个不变量的类型保护吗?

    我可以编写一个类型保护来断言一个或多个子对象一个论点 在伪代码中 它可能看起来像这样 class C a number b string function assertInitialized this a is number and thi
  • 如何验证 has_many :through 连接模型的唯一性?

    我有通过投票模型加入的用户和问题 用户可以对问题进行投票 他们可以投票赞成或反对 这记录在投票模型中 首先 我希望能够阻止用户向一个方向投多次票 其次 我想让用户投反对票 因此 如果他们投了赞成票 他们仍然应该能够投反对票 这将取代赞成票
  • 使用 RestructedText 和 Sphinx 包含预格式化文件

    我正在尝试使这个片段发挥作用 Version History These are the versions over time include CHANGES txt 也就是说 使用 include 指令将文件作为块引用包含在内 一旦进入块
  • OCR 解析获取复选框或单选按钮值

    I need to parse OCR image file and get all texts and checkbox values How to get Checkbox or Radio Button value from OCR
  • 如何获取Titan DB版本1.0.0中顶点或边元素的属性

    在旧版本中泰坦数据库 0 5 2 版 the 泰坦顶点 and 泰坦之刃实施泰坦元素有方法的接口getProperties String key 我用来检索元素属性值 这个方法在新版本的Titan中被删除了 我使用的是1 0 0版本 我找到
  • 了解“apply-templates”匹配

    我的想法正确吗 apply templates声明应匹配all哪些模板可用于选择 例如 给定以下 xml 片段
  • PHP::当数组 1 的值位于偶数位置而数组 2 的值位于奇数位置时,如何合并 2 个数组? [复制]

    这个问题在这里已经有答案了 当数组 1 的值位于偶数位置而数组 2 的值位于奇数位置时 如何合并两个数组 Example arr1 array 11 34 30 arr2 array 12 666 output array 11 12 34
  • 在 Bash 中用数字对字符串进行排序[重复]

    这个问题在这里已经有答案了 我经常想对其中包含数字的字符串进行排序 以便在排序时 例如abc 2 abc 1 abc 10结果是abc 1 abc 2 abc 10 我见过的每一种排序机制都是abc 1 abc 10 abc 2 即从左侧开
  • 如何从迭代器创建 Spark RDD?

    为了说清楚 我不是从像这样的数组 列表中寻找RDD List