Я работаю над отчетом об атрибуции и кэширую фрейм данных, так как он часто используется на более поздней стадии кода.Как только использование сделано, я должен unpersist () или unpersist (true).Я понимаю, что основной разницей будет асинхронность и синхронизация соответственно.Но у одного больше задержка, чем у другого?Или есть какие-то другие последствия для этого?
val dfForWeb = loadData(aggregationType, readConfigForWeb).cache()
//some logical code blocks
..
..
..
dfForWeb.unpersist() //This works fine
//Tried using the below and got the same result:
//dfForWeb.unpersist(true) --This also works fine
Фактический код выглядит следующим образом:
val dfForWeb = loadData(aggregationType, readConfigForWeb).cache()
val dfForMobile = loadData(aggregationType, readConfigForMobile).cache()
if (condition) {
for (item <- GeoAggregationList) {
processData(dfForWeb) //This dataframe is used for a lot of computations later
}
} else {
processData(dfForWeb) //This dataframe is used for a lot of computations later
}
dfForWeb.unpersist()
dfForMobile.unpersist()
Я пытаюсь быть осторожным, поскольку это приложение необходимо масштабировать и когдафактические данные обрабатываются, я сомневаюсь, что unpersist () и unpersist (true) будут иметь огромное значение с точки зрения задержки и потери данных.Пожалуйста, сообщите.