Пример Контрольной точки Фрейма Данных Pyspark

#apache-spark #pyspark #apache-spark-sql #spark-checkpoint

Вопрос:

Я читал о контрольной точке, и она отлично подходит для моих нужд, но я не смог найти хорошего примера того, как ее использовать.
Мои вопросы таковы:

  1. Должен ли я указать адрес контрольной точки? Возможно ли это сделать вот так:

    df.контрольная точка()

  2. Существуют ли какие-либо дополнительные параметры, о которых я должен знать?
  3. Существует ли контрольная точка по умолчанию, или я должен указать ее по умолчанию?
  4. Когда я проверяю фрейм данных и повторно использую его — он автоматически считывает данные из директории, в которую мы записали файлы?

Было бы здорово, если бы вы могли поделиться со мной примером использования контрольной точки в pyspark с некоторыми объяснениями. Спасибо!

Ответ №1:

Вы должны назначить фрейм данных с контрольной точкой переменной как checkpoint «Возвращает контрольную версию этого набора данных» (https://spark.apache.org/docs/3.1.1/api/python/reference/api/pyspark.sql.DataFrame.checkpoint.html). Итак

 df = df.checkpoint()
 

Единственный параметр eager , который определяет, хотите ли вы, чтобы контрольная точка инициировала действие и была немедленно сохранена, это True по умолчанию, и обычно вы хотите сохранить ее таким образом.

Вы должны установить каталог контрольных SparkContext.setCheckpointDir(dirName) точек где-нибудь в своем сценарии, прежде чем использовать контрольные точки. В качестве альтернативы, если вы хотите сохранить в памяти вместо этого, вы можете использовать localCheckpoint() вместо checkpoint() , но это ненадежно, и в случае проблем/после завершения контрольные точки будут потеряны (но это должно быть быстрее, так как он использует подсистему кэширования вместо записи только на диск).

И да, он должен быть прочитан автоматически, вы можете посмотреть на сервер истории, и в начале блоков/запросов должны быть узлы «загрузка данных» (я не помню точного названия).