📜  Python中的Dask简介

📅  最后修改于: 2022-05-13 01:54:25.908000             🧑  作者: Mango

Python中的Dask简介

Dask 是一个在Python中支持并行计算的库。它提供了以下功能 -

  1. 针对交互式计算工作负载优化的动态任务调度
  2. dask 的大数据集合扩展了 NumPy、Pandas 等常用接口。

为什么是达斯克?

大多数大数据分析将使用 Pandas、NumPy 来分析大数据。所有提到的包都支持各种各样的计算。但是当数据集不适合内存时,这些包将无法扩展。天黑了。当数据集不“适合内存”时,dask 会将数据集扩展为“适合磁盘” 。 Dask 允许我们根据数据集的大小轻松地扩展到集群或缩小到单台机器。

安装

要安装此模块,请在终端中键入以下命令 -

python -m pip install "dask[complete]" 

让我们看一个比较 dask 和 pandas 的示例。要下载以下示例中使用的数据集,请单击此处。

1. Pandas 性能:使用 pd.read_csv() 读取数据集

Python3
import pandas as pd
  
%time temp = pd.read_csv('dataset.csv',
                          encoding = 'ISO-8859-1')


Python3
import dask.dataframe as dd
  
%time df = dd.read_csv("dataset.csv", 
                        encoding = 'ISO-8859-1')


输出:

2. Dask 性能:阅读 使用 dask.dataframe.read_csv 的数据集

Python3

import dask.dataframe as dd
  
%time df = dd.read_csv("dataset.csv", 
                        encoding = 'ISO-8859-1')

输出:

现在可能会出现一个问题,即在 dask 之前使用 pandas 处理了多大的数据集?在 pandas 中管理大型数据集的技巧很少。

  1. 在 pandas 中使用 read_csv 的 chunksize 参数
  2. 读取 csv 文件时仅使用需要的列

在使用 pandas 读取大型数据集时,大多数情况下都会遵循上述技术。但在某些情况下,在 dask 起主要作用时,上述内容可能没有用。

黑暗的局限

dask 有一定的局限性。

  1. Dask 不能在单个任务中并行化。
  2. 作为分布式计算框架,dask 支持远程执行任意代码。所以 dask 工作人员应该只托管在受信任的网络中。