Разница в работе между неперспективой и неперспективой (блокировка: логическое значение) - PullRequest
0 голосов
/ 28 декабря 2018

Я работаю над отчетом об атрибуции и кэширую фрейм данных, так как он часто используется на более поздней стадии кода.Как только использование сделано, я должен 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) будут иметь огромное значение с точки зрения задержки и потери данных.Пожалуйста, сообщите.

...