如何从 Spark 中的 Slaves 内存中创建 RDD?

Posted

技术标签:

【中文标题】如何从 Spark 中的 Slaves 内存中创建 RDD?【英文标题】:How to create RDD from memory of Slaves in Spark? 【发布时间】:2018-01-27 23:27:10 【问题描述】:

我知道这可能听起来很傻,但是有没有办法从当前在集群从属内存中的文件创建 RDD?我知道要创建 RDD,我们必须指定存储文件的路径/hdfs 路径。但是我很好奇我是否可以在Java applications 之间复制对象并将对象直接放入同名的从属内存中,有没有办法用这些文件创建 RDD 和/或以分布式方式工作?提前致谢!

【问题讨论】:

【参考方案1】:

简短的回答是否定的。

“奴隶”根本不参与计算。这里只负责资源管理部分。

另一方面,工人本身并不存在。它们与应用程序相关联,因此在它之外没有“当前状态”。

您可以做的是创建虚拟RDD 并在对它们调用函数时加载一些对象。但是,这绝不应该与特定的物理主机相关联。虽然 Spark 支持提示首选位置,但不能保证特定任务将在特定机器上处理,或者即使在同一个应用程序中,分配在不同评估中也将保持不变。

【讨论】:

以上是关于如何从 Spark 中的 Slaves 内存中创建 RDD?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spark Scala 中的 Schema RDD [从案例类中创建] 中查找重复项以及相应的重复计数?

如何从键值对列表中创建 Spark Row

Spark-RDD创建并行分区

Spark:如何在每个执行程序中创建本地数据帧

如何在 Spark 中使用 Python 查找 DataFrame 中的分区数以及如何在 Spark 中使用 Python 在 DataFrame 中创建分区

在 Spark 中的 EMR 上使用 --py-files 从 .zip 文件(使用 zipfile 包在 python 中创建)导入模块时出现问题