gpt4 book ai didi

apache-spark - PySpark:全面清洁检查站

转载 作者:行者123 更新时间:2023-12-03 15:57:03 28 4
gpt4 key购买 nike

根据documentation可以告诉Spark跟踪“超出范围”的检查点-不再需要的检查点-并从磁盘中清除它们。

SparkSession.builder
...
.config("spark.cleaner.referenceTracking.cleanCheckpoints", "true")
.getOrCreate()

显然是这样做的,但是问题是,从未删除最后一个检查点的rdds。

问题
  • 我缺少执行所有清理的任何配置吗?
  • 如果没有:有什么方法可以获取为特定应用程序创建的临时文件夹的名称,以便可以通过编程方式将其删除? IE。从0c514fb8-498c-4455-b147-aff242bd7381获取SparkContext的方法与获取applicationId
  • 的方法相同

    最佳答案

    我知道它的老问题,但是最近我正在探索checkpoint并遇到类似的问题。希望分享调查结果。

    Question :Is there any configuration I am missing to perform all cleanse?



    设置 spark.cleaner.referenceTracking.cleanCheckpoints=true有时会起作用,但很难依靠它。官方文件说,通过设置此属性

    clean checkpoint files if the reference is out of scope



    我不知道这是什么意思,因为我的理解是,一旦spark session /上下文停止,就应该清理它。

    但是,我找到了以下问题的答案

    If there isn't: Is there any way to get the name of the temporary folder created for a particular application so I can programatically delete it? I.e. Get 0c514fb8-498c-4455-b147-aff242bd7381 from SparkContext the same way you can get the applicationId



    ,我们可以得到 checkpointed目录,如下所示:

    Scala:
    //Set directory
    scala> spark.sparkContext.setCheckpointDir("hdfs:///tmp/checkpoint/")

    scala> spark.sparkContext.getCheckpointDir.get
    res3: String = hdfs://<name-node:port>/tmp/checkpoint/625034b3-c6f1-4ab2-9524-e48dfde589c3

    //It gives String so we can use org.apache.hadoop.fs to delete path

    PySpark:
    // Set directory
    >>> spark.sparkContext.setCheckpointDir('hdfs:///tmp/checkpoint')
    >>> t = sc._jsc.sc().getCheckpointDir().get()
    >>> t
    u'hdfs://<name-node:port>/tmp/checkpoint/dc99b595-f8fa-4a08-a109-23643e2325ca'

    // notice 'u' at the start which means It returns unicode object
    // Below are the steps to get hadoop file system object and delete

    >>> fs = sc._jvm.org.apache.hadoop.fs.FileSystem.get(sc._jsc.hadoopConfiguration())
    fs.exists(sc._jvm.org.apache.hadoop.fs.Path(str(t)))
    True

    >>> fs.delete(sc._jvm.org.apache.hadoop.fs.Path(str(t)))
    True

    关于apache-spark - PySpark:全面清洁检查站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52630858/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com