Некоторые проблемы с вашим кодом:
строка df =
предположительно загружает весь набор данных в память. Даска здесь не вызывается, он не играет никакой роли. Кто-то со знанием водителя Cassandra может подтвердить это.
list(df)
создает список имен столбцов информационного кадра и удаляет все данные
dd.DataFrame
, если вы прочитали документы , то это не так.
Что вы, вероятно, захотите сделать, это: а) создать функцию, которая возвращает один раздел данных, б) задержать эту функцию и вызвать с различными значениями разделов в) использовать dd.from_delayed
для создания кадра данных dask. Например, предполагая, что в таблице есть поле partfield
, которое легко имеет возможные значения 1..6 и аналогичное количество строк для каждого раздела:
@dask.delayed
def part(x):
session = # construct Cassandra session
q = "SELECT * FROM document_table WHERE partfield={}".format(x)
df = man.session.execute(query)
return dd.DataFrame(list(df))
parts = [part(x) for x in range(1, 7)]
df = dd.from_delayed(parts)