Итерационные / рекурсивные алгоритмы искры - Разрыв искровой линии - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть алгоритм рекурсивного искрения, который применяет скользящее окно из 10 дней к набору данных.

Исходный набор данных загружается из таблицы Hive, секционированной по дате.

На каждой итерации aкомплексный набор операций применяется к набору данных, содержащему десятидневное окно.

Затем последняя дата вставляется обратно в исходную таблицу Hive, а следующая дата загружается из Hive и объединяется с оставшимися девятью днями.

Я понимаю, что мне нужно прервать линию искры, чтобы DAG не стал неуправляемым.

Я считаю, что у меня есть два варианта:

  1. Проверка - включает в себя дорогостоящую запись вHDFS.
  2. Преобразование в rdd и обратно

    spark.createDataset (myDS.rdd)

Есть ли недостатки при использовании второговариант - я предполагаю, что это операция в памяти и, следовательно, дешевле.

1 Ответ

0 голосов
/ 28 сентября 2018

Проверка наведения и обратного преобразования в RDD - действительно лучший / единственный способ усечь происхождение.

Многие (все?) Алгоритмы Spark ML Dataset / DataFrame на самом деле реализованы с использованием RDD, но предоставляемые API-интерфейсы являются DS / DF из-за того, что оптимизатор не распараллелен и размер линии из итеративных / рекурсивных реализаций.

Преобразование в и из СДР обходится дорого, но меньше, чем опция контрольной точки файловой системы.

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