Dask 介绍
Dask是一款用于分析计算的灵活并行计算库。 Dask由两部分组成: 针对计算优化的动态任务调度。这与Airflow,Luigi,Celery或Make相似,但针对交互式计算工做负载进行了优化。 “大数据”集合, 像并行数组,数据框和列表同样,它们将通用接口(如NumPy,Pandas或Python迭代器)扩展到大于内存或分布式环境。 这些并行集合运行在动态任务调度器之上。html
Dask 安装
在配置好 pip 的环境下安装,只须要命令 pip install dask
便可安装完成Dask的核心部分。并且很是小,才 1MBpython
可是若是须要用到比较多的功能的话,仍是建议装完整版本 pip install dask[complete]
这里还要注意一个坑,dask的有一些库要求的python
版本 > 2.7.8 或者 3.4——版本太低容易被坑数组
#Dask简单使用: 也能够参考Dask官网文档框架
Dask用例大体能够分为如下两类:
-
大型NumPy / Pandas /使用dask.array,dask.dataframe,dask.bag列出来分析具备熟悉技术的大型数据集。这与Databases,Spark或大型数组库相似。dom
-
自定义任务计划。您提交了一个相互依赖于自定义工做负载的函数图。这与Luigi,Airflow,Celery或Makefiles相似。分布式
今天的大多数人都认为Dask假设它是一个像Spark这样的框架,它围绕着大量统一形状数据集合的第一个用例而设计。然而,许多更高效和新颖的用例属于第二类,使用Dask来并行化定制工做流程。函数
Dask计算环境能够分为如下两类:
- 带有线程或进程的单机并行:Dask单机调度程序利用笔记本电脑或大型工做站的所有CPU功率,并将空间限制从“适合内存”更改成“适合磁盘”。这个调度程序使用简单,没有大多数“大数据”系统的计算或概念开销。
- 多节点上的分布式集群并行:Dask分布式调度程序协调集群中多台机器的操做。它能够在任何地方从一台机器扩展到一千台机器,但不会超越其余机器。 单机调度程序对更多我的有用(更多人拥有我的笔记本电脑,而不是能够访问群集),而且可能占当前使用Dask的80%以上。分布式机器调度程序对大型机构,研究实验室或私人公司颇有用。
Dask里面提供了不少库,能够从最普通的 array中入手
第一个hello world的例子:
dask.array的使用:大数据
import dask.array as da import numpy as np # 1.example----- HelloWorld x = np.arange(1000) print x y = da.from_array(x, chunks=(100)) print y print y.mean() print y.mean().compute()
第二个例子:
产生随机数:优化
# 2.example x = da.random.normal(0, 1, size=(100,100), chunks=(10, 10)) a = x.mean().compute() print a
bag 提供了 map, filter, fold, groupby等操做
# 3. import dask.bag as db b = db.from_sequence([1, 2, 3, 4, 5, 6]) print b c = db.from_sequence([1, 2, 3, 4, 5, 6], npartitions=2) print c