探索python?dask靈活的并行計(jì)算庫應(yīng)用場景示例
引言
今天給大家分享一個(gè)超強(qiáng)的 python 庫,dask
Dask 的特點(diǎn)
動(dòng)態(tài)任務(wù)調(diào)度:Dask 能夠智能地安排復(fù)雜的計(jì)算任務(wù),優(yōu)化資源利用率。
兼容性:Dask 提供了與這些庫相似的 API,允許用戶輕松遷移到更大規(guī)模的數(shù)據(jù)處理上。
延遲計(jì)算:Dask 允許構(gòu)建一個(gè)任務(wù)圖,其中計(jì)算是延遲執(zhí)行的,直到需要其結(jié)果時(shí)才真正觸發(fā)計(jì)算。
透明地?cái)U(kuò)展到分布式計(jì)算:Dask 可以在單機(jī)上以多線程或多進(jìn)程的方式運(yùn)行,也可以擴(kuò)展到多機(jī)的分布式集群。
庫的安裝
我們可以直接使用 pip 來進(jìn)行安裝。
pip install dask
或者使用 conda 來安裝。
conda install dask
數(shù)據(jù)集生成
我們將創(chuàng)建一個(gè)包含六列的虛擬數(shù)據(jù)集。
第一列是時(shí)間戳—以秒的間隔采樣的二年,其他五列是隨機(jī)整數(shù)值。
import numpy as np
import pandas as pd
import dask.dataframe as dd
from datetime import datetime
dates = pd.date_range(
start=datetime(year=2022, month=1, day=1),
end=datetime(year=2023, month=12, day=31),
freq='s'
)
df = pd.DataFrame()
df['Date'] = dates
for i in range(5):
df[f'X{i}'] = np.random.randint(low=0, high=100, size=len(df))
df.to_csv(f'2022.csv', index=False)性能對比
首先,讓我們使用 pandas 來運(yùn)行 groupby 計(jì)算并建立性能基線。
%%timeit
df.groupby("X0").agg({"X4": "sum"})
可以看到使用 pandas 進(jìn)行 groupby 操作,需要耗費(fèi) 831 ms
讓我們使用 Dask 運(yùn)行相同的 groupby 查詢。
import dask.dataframe as dd
ddf = dd.read_csv('2022.csv')%%timeit
ddf.groupby("X0").agg({"X4": "sum"})對于同樣的操作,使用 dask 只需要 4 ms ,性能有了顯著的提升。

這是因?yàn)?pandas 僅使用 1 個(gè) CPU 核心來運(yùn)行查詢。而 Dask 使用所有核心來運(yùn)行計(jì)算。
以上就是探索python dask靈活的并行計(jì)算庫應(yīng)用場景示例的詳細(xì)內(nèi)容,更多關(guān)于python dask并行計(jì)算庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)TCPserver的使用示例
python實(shí)現(xiàn)TCPserver是一件簡單的事情,只要通過socket這個(gè)模塊就可以實(shí)現(xiàn),本文就來介紹一下python實(shí)現(xiàn)TCPserver的使用示例,感興趣的可以了解一下2023-10-10
Python logging模塊異步線程寫日志實(shí)現(xiàn)過程解析
這篇文章主要介紹了Python logging模塊異步線程寫日志實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請求的用法
SocketServer模塊中帶有很多實(shí)現(xiàn)服務(wù)器所能夠用到的socket類和操作方法,下面我們就來以實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請求的用法:2016-06-06
使用Python構(gòu)造hive insert語句說明
這篇文章主要介紹了使用Python構(gòu)造hive insert語句說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

