apache-spark - 如何在2个Spark上下文之间共享Spark RDD?

标签 apache-spark rdd

我有一个 RMI 集群。每个 RMI 服务器都有一个 Spark 上下文。 有没有办法在不同的 Spark 上下文之间共享 RDD?

最佳答案

正如 Daniel Darabos 所说,这是不可能的。 Spark 中的每个分布式对象都绑定(bind)到用​​于创建它的特定上下文(如果是 RDD,则为 SparkContext;如果是 DataFrame,则为 SQLContext)数据集)。如果您希望在应用程序之间共享对象,则必须使用共享上下文(例如,参见 spark-jobserverLivyApache Zeppelin )。由于 RDD 或 DataFrame 只是一个小的本地对象,因此实际上没有太多可以共享的内容。

共享数据是一个完全不同的问题。您可以使用专门的内存缓存( Apache Ignite )或分布在内存文件系统(如 Alluxio - 前 Tachyon)来最大限度地减少应用程序之间切换时的延迟,但您无法真正避免它。

关于apache-spark - 如何在2个Spark上下文之间共享Spark RDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27917784/

相关文章:

scala - 根据条件拆分 Spark DataFrame

java - Spark (Java): Get Filename/Content pairs from a list of file names

mongodb - 使用java将rdd保存到mongo数据库中

java - 从java中的SparkSession读取对象文件

java - 如何将一个大序列文件拆分为多个序列文件?

scala - 如何确保 Parquet 文件包含元数据中的行数?

apache-spark - pyspark createdataframe : string interpreted as timestamp,模式混合列

docker - 如何在Docker上设置Apache Spark和Zeppelin