У меня есть отсортированный набор данных, который обновляется (фильтруется) внутри цикла в соответствии со значением заголовка набора данных.
Если я кэширую набор данных каждые n (например, 50) циклов, я получаю хорошую производительность.
Однако после определенного количества циклов кеш, похоже, не работает, так как программа тормозит (наверное, потому, что память, выделенная для кеширования, заполнена).
Я спрашивал, возможно ли сохранить в кэше только обновленный набор данных, чтобы не заполнять память и при этом иметь хорошую производительность.
Ниже приведен пример моего кода:
dataset = dataset.sort(/* sort condition */)
dataset.cache()
var head = dataset.head(1)
var count = 0
while (head.nonEmpty) {
count +=1
/* custom operation with the head */
dataset = dataset.filter(/* filter condition based on the head of the dataset */
if (count % 50 == 0) {
dataset.cache()
}
head = dataset.head(1)
}