Dask教程

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用例大體能夠分爲如下兩類:
  1. 大型NumPy / Pandas /使用dask.array,dask.dataframe,dask.bag列出來分析具備熟悉技術的大型數據集。這與Databases,Spark或大型數組庫相似。dom

  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
相關文章
相關標籤/搜索