Автоматически удалять файлы контрольных точек в PySpark - PullRequest
0 голосов
/ 27 апреля 2020

Я создаю искровой контекст и сессию в своем коде PySpark следующим образом:

conf = SparkConf().set("spark.cleaner.referenceTracking.cleanCheckpoints", "true")
sc = SparkContext.getOrCreate(conf=conf)

spark = SparkSession(sc)
spark.sparkContext.setCheckpointDir("../../checkpoints")

В следующем коде я использую checkpoint() на некоторых фреймах данных. Это работает, как и ожидалось.

Но я хочу удалить контрольные точки после того, как код будет выполнен до завершения.

Можно ли использовать конфигурацию свечи? cleanCheckpoints этого не делает.

Как я могу удалить эти файлы контрольных точек после завершения кода? Каков наилучший подход?

1 Ответ

0 голосов
/ 27 апреля 2020

Запишите любые логики очистки c внутри onApplicationStart или onApplicationEnd метода SparkListener и посмотрите на SparkListener абстрактный класс для других полезных методов.

Note: ниже scala код показывает, как зарегистрировать SparkLister и методы доступа.


spark.sparkContext.addSparkListener(new SparkListener() {

  override def onApplicationStart(applicationStart: SparkListenerApplicationStart) {
    println("Spark ApplicationStart: " + applicationStart.appName);
  }
  override def onApplicationEnd(applicationEnd: SparkListenerApplicationEnd) {
    println("Spark ApplicationEnd: " + applicationEnd.time);
  }
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...