Dask 介绍

Dask是一款用于分析计算的灵活并行计算库。

Dask由两部分组成:

针对计算优化的动态任务调度。这与Airflow,Luigi,Celery或Make类似,但针对交互式计算工作负载进行了优化。

“大数据”集合, 像并行数组,数据框和列表一样,它们将通用接口(如NumPy,Pandas或Python迭代器)扩展到大于内存或分布式环境。 这些并行集合运行在动态任务调度器之上。

Dask 安装

在配置好 pip 的环境下安装,只需要命令

pip install dask

即可安装完成Dask的核心部分。而且非常小,才 1MB

但是如果需要用到比较多的功能的话,还是建议装完整版本

pip install dask[complete]

这里还要注意一个坑,dask的有一些库要求的python版本 > 2.7.8 或者 3.4——版本过低容易被坑

Dask简单使用:

也可以参考Dask官网文档

Dask用例大致可以分为以下两类:
  1. 大型NumPy / Pandas /使用dask.array,dask.dataframe,dask.bag列出来分析具有熟悉技术的大型数据集。这与Databases,Spark或大型数组库类似。

  2. 自定义任务计划。您提交了一个相互依赖于自定义工作负载的函数图。这与Luigi,Airflow,Celery或Makefiles类似。

    今天的大多数人都认为Dask假设它是一个像Spark这样的框架,它围绕着大量统一形状数据集合的第一个用例而设计。然而,许多更高效和新颖的用例属于第二类,使用Dask来并行化定制工作流程。

Dask计算环境可以分为以下两类:
  1. 带有线程或进程的单机并行:Dask单机调度程序利用笔记本电脑或大型工作站的全部CPU功率,并将空间限制从“适合内存”更改为“适合磁盘”。这个调度程序使用简单,没有大多数“大数据”系统的计算或概念开销。
  2. 多节点上的分布式集群并行: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

最新文章

  1. 介绍几个好用的vs插件
  2. 利用iOS API编写简单微博客户端全过程
  3. Codeforces Round #375 (Div. 2) ABCDE
  4. bzoj1630 [Usaco2007 Demo]Ant Counting
  5. 文本图片自适应高度小bug以及解决办法
  6. javaWeb学习总结(8)- JSP基础语法(2)
  7. mybatis 详解(四)------properties以及别名定义
  8. 【开发技术】一些常用的网站[ios]
  9. 将代码从 spark 1.x 移植到 spark 2.x
  10. C/C++基础----随机数分布和随机数引擎
  11. android studio 导入module作为lib使用
  12. django admin 导出数据简单示例
  13. thinkphp中的Ueditor的使用, 以及如何传递编辑器内容到后台?
  14. 20145319 《网络渗透》MS12_020安全漏洞
  15. Andrew File System
  16. JVM -XX: 参数介绍
  17. mysql语句求按字段分组后组数是多少
  18. javascript获取元素样式值
  19. 【luogu P1073 最优贸易】 题解
  20. Kali渗透测试-SNMP

热门文章

  1. 常用的layer弹出层
  2. unittest单元测试框架之unittest 框架的总结(七)
  3. springboot-redis缓存
  4. sql 优化的几种方法
  5. IO流之字节流
  6. mongodb安装 超级管理 普通用户
  7. React Router 4.0 实现路由守卫
  8. MongoDB入门---聚合操作&管道操作符&索引的使用
  9. APP支付 + 退款(JAVA实现)
  10. Prism for WPF 搭建一个简单的模块化开发框架(六)隐藏菜单、导航