Dask教程

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的使用:

1import dask.array as da 2import numpy as np 3# 1.example----- HelloWorld 4x = np.arange(1000) 5print x 6y = da.from_array(x, chunks=(100)) 7print y 8print y.mean() 9print y.mean().compute()
第二个例子:

产生随机数:

1# 2.example 2x = da.random.normal(0, 1, size=(100,100), chunks=(10, 10)) 3a = x.mean().compute() 4print a
bag 提供了 map, filter, fold, groupby等操作
1# 3. 2import dask.bag as db 3b = db.from_sequence([1, 2, 3, 4, 5, 6]) 4print b 5c = db.from_sequence([1, 2, 3, 4, 5, 6], npartitions=2) 6print c
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang