对于数据科学家来说,大数据是一个不断增长的信息池,为了轻松地处理输入和处理,总是需要一个好用的系统。

为了处理大量的数据流入,我们要么不得不购买速度更快的服务器以增加成本,要么就必须更聪明地工作,并为并行计算构建Dask这样的定制库。

在我讨论Dask作为并行计算解决方案之前,让我们先了解一下这种类型的计算在大数据世界中意味着什么。

根据其定义,并行计算是一种计算类型,其中许多计算或进程的执行是同时进行的。为了简化,并行计算是指由多个通过共享内存连接的任务执行者(或处理器)完成一个计算任务。

什么是Dask?

Dask是用Python编写的,是一个灵活的、开源的并行计算库。它允许开发人员与其他社区项目(如NumPy、Pandas和sciketlearn)协作构建他们的软件。Dask为分析提供高级并行性,实现大规模性能。

Dask由两部分组成:用于优化计算的动态任务调度和大数据集合,如并行数组、数据帧和列表,它们将NumPy、Pandas或Python迭代器等常见接口扩展到比内存大的环境或分布式环境,这些环境运行在动态任务调度程序之上。

为什么是Dask?

有人可能会争辩说,有必要在其他等价物在场的情况下切换到Dask吗?然而,Dask最大的优点是易于采用。它为Python用户所熟悉,并且使用现有的API和数据结构,使得在NumPy、Pandas、scikit和它们的Dask功能的等价物之间进行切换成为一个无缝的过程—所有这些都不需要你完全重写代码。

打开网易新闻 查看精彩图片

除了提供熟悉度,Dask还包括:

  • 灵活:使用Dask允许定制工作和与其他项目的集成
  • 原生: Dask原生地通过分布式计算和PyData堆栈的访问来扩展Python
  • 敏捷: 低开销、低延迟和最小的序列化,Dask为数字算法提供了令人印象深刻的敏捷性
  • 可扩展:Dask可以在拥有1000个核的集群上扩展,也可以在在笔记本电脑上的单个进程中建立和运行
  • 响应性:考虑到交互式计算,Dask提供快速反馈和诊断

Dask与大数据

虽然Pandas是一个强大的数据计算和分析工具,但Dask的成功之处在于它能够处理比本地RAM大的数据量,而不会使系统崩溃或影响性能。它提供了一种在Python中处理大型数据的简单方法,而不需要额外的工作。

考虑到目前在家工作的情况,必须跟着更大的机器工作并不完全是灵活工作的定义。这就是Dask在笔记本电脑上有无缝运行的能力。它使用conda或pip简单地安装,并将方便的数据集的大小从“适合内存”扩展到“适合磁盘”。

打开网易新闻 查看精彩图片

如前所述,Dask具有弹性、数据本地性和低延迟。轻松的过渡让你可以在单机到中等集群之间无缝地移动。对于那些已经熟悉Pandas的人来说,Dask在性能和可伸缩性方面似乎是一个扩展。

你可以根据需要在Dask数据帧和Pandas数据帧之间进行任何数据转换和操作。

示例| Dask数据帧基础

Dask数据帧协调多个数据帧,并沿索引进行分区。

打开网易新闻 查看精彩图片