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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM