【问题标题】:Persisted Spark RDD not available in another Spark shell持久化 Spark RDD 在另一个 Spark shell 中不可用
【发布时间】:2014-10-29 13:17:18
【问题描述】:

我们有一个 Spark-1.1.0 独立的 2 节点集群,在该集群上使用 Spark shell 创建了 Spark RDD。 RDD 已被持久化(MEMORY_ONLY)。我无法使用 sc.getPersistentRDDs() 从另一个 Spark shell 检索此 RDD。我错过了什么吗?

【问题讨论】:

    标签: apache-spark persist rdd


    【解决方案1】:

    RDD 保存在生成​​该 RDD 的 SparkContext 的上下文中,并且只能通过创建它们的 Spark 上下文访问。

    这意味着您不能像使用第二个 Spark-shell 那样从另一个 SparkContext B 访问使用 SparkContext 创建的 RDD。

    【讨论】:

    • 谢谢。但这是否意味着没有办法共享生成和持久化的 RDD 以供将来使用?这似乎有点违背 Spark 的迭代处理原则。
    • 迭代过程涉及需要多次遍历同一数据集、每次进行一些计算并可能对其进行转换的算法。如果您想将计算结果重新用于“未来使用”,您始终可以将 RDD 持久化到磁盘。您还可以查看 Tachyon 以获取内存中的替代方案。
    • 谢谢 maasg,这澄清了。我误解了坚持的意思。
    猜你喜欢
    • 2016-01-16
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2016-02-24
    相关资源
    最近更新 更多