【问题标题】:Spark: unpersist RDDs for which I have lost the referenceSpark:我丢失了参考的非持久化 RDD
【发布时间】:2017-02-07 00:26:29
【问题描述】:

如何取消在我没有参考的 MLlib 模型中生成的 RDD?

我知道在 pyspark 中,您可以使用 sqlContext.clearCache() 取消所有数据帧,除了 scala API 中的 RDD 之外,是否有类似的东西?此外,有没有办法我可以只取消一些 RDD 而不必取消所有?

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    你可以打电话

    val rdds = sparkContext.getPersistentRDDs(); // result is Map[Int, RDD]
    

    然后过滤值以获得您想要的值(1):

    rdds.filter (x => filterLogic(x._2)).foreach (x => x._2.unpersist())
    

    (1) - 手工编写,没有编译器 - 如有错误,请见谅,但不应该有;)

    【讨论】:

    • pySpark 中是否有类似val rdds = sparkContext.getPersistentRDDs(); // result is Map[Int, RDD] 的等效命令?
    • @KostasGeorgiou 不,PySpark 中没有这样的功能。请看这张票:issues.apache.org/jira/browse/SPARK-2141 RDD id 只能查询 RESTful API
    • 我刚刚使用 jvm spark 上下文解决了它。这是等效的:for (id, rdd) in sc._jsc.getPersistentRDDs().items(): rdd.unpersist()
    猜你喜欢
    • 2016-07-17
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    相关资源
    最近更新 更多