Я обрабатываю поток со средней нагрузкой 100 Мбит / с. У меня шесть исполнителей, у каждого из которых выделено 12 Гб памяти. Однако из-за загрузки данных через несколько минут я получаю ошибки Out of Memory (Ошибка 52) в исполнителях искры. Кажется, даже если концептуальный фрейм Spark неограничен , он ограничен общей памятью исполнителя?
Моя идея заключалась в том, чтобы сохранять данные / поток как паркет примерно каждые пять минут. Однако, похоже, что у spark не будет прямого механизма очистки данных после этого?
val out = df.
writeStream.
format("parquet").
option("path", "/applications/data/parquet/customer").
option("checkpointLocation", "/checkpoints/customer/checkpoint").
trigger(Trigger.ProcessingTime(300.seconds)).
outputMode(OutputMode.Append).
start