#python #dask #memmap
#python #dask #memmap
Вопрос:
Я хочу управлять многими файлами таким образом, чтобы файл оставался на диске, а мое приложение работало с частью данных.
Мне нужно управлять файлами 2 типов: текстовые файлы / книжные, cvs-файлы / временные ряды. Для каждого файла я могу сгенерировать несколько уменьшенных копий, которые я хочу сохранить и кэшировать, чтобы мне не приходилось их восстанавливать.
Я вижу два способа сделать это:
1. create my own lib that uses mem-mapping
2. use tool as DASK
Dask кажется хорошим выбором, но я не могу найти способ, чтобы объект Bag выполнял итерации в цикле и / или доступе к диапазону, т.е.
for i in bag_obj[2:10] : .....
bag_obj[5:10]
Я могу сделать только .take()
Во-вторых, есть ли способ сопоставить СПИСОК с файлом и выполнять операции со списком как обычный список, как если бы он находился в памяти.
Я придумал это, это лучшее :
def slice(self, pfrom, pto):
assert self.bag is not None
self.bag.take(pto)[pfrom:]
но не работает, потому что возвращает значение computed() ; (
Ответ №1:
это может быть решением?
from dask.bag.core import Bag
def slice(self, pfrom, pto): return self.take(pto)[pfrom:]
Bag.slice = slice