Но я заметил, что dask очень эффективен при фильтрации кадров данных, НО в .compute ().
Вы неправильно понимаете, как работает dask.dataframe
.Строка results = dask_df[dask_df['URL'] == row['URL']]
выполняет никаких вычислений для набора данных.Он просто хранит инструкции относительно вычислений, которые могут быть запущены на более позднем этапе.
Все вычисления применяются только со строкой count = results.size.compute()
.Это вполне ожидаемо, поскольку dask
работает лениво.
Подумайте о генераторе и такой функции, как list
, которая может исчерпать генератор.Сам генератор ленив, но будет запускать операции при вызове функцией.dask.dataframe
также ленив, но работает умно, формируя внутреннюю «цепочку» последовательных операций.
Вы должны увидеть Laziness and Computing из документации для получения дополнительной информации.