一行程式碼,Pandas秒變分散式,快速處理TB級資料

量子位發表於2018-03-07
夏乙 發自 凹非寺
量子位 出品 | 公眾號 QbitAI

剛剛在Pandas上為十幾KB的資料做好了測試寫好了處理指令碼,上百TB的同類大型資料集擺到了面前。這時候,你可能面臨著一個兩難的選擇:

繼續用Pandas?可能會相當慢,上百TB資料不是它的菜。

(ಥ_ಥ) 然而,Spark啊分散式啊什麼的,學習曲線好陡峭哦~在Pandas裡寫的處理指令碼都作廢了好桑心哦~

640?wx_fmt=png&wxfrom=5&wx_lazy=1

別灰心,你可能真的不需要Spark了。

加州大學伯克利分校RiseLab最近在研究的Pandas on Ray,就是為了讓Pandas執行得更快,能搞定TB級資料而生的。這個DataFrame庫想要滿足現有Pandas使用者不換API,就提升效能、速度、可擴充套件性的需求。

研究團隊說,只需要替換一行程式碼,8核機器上的Pandas查詢速度就可以提高4倍。

其實也就是用一個API替換了Pandas中的部分函式,這個API基於Ray執行。Ray是伯克利年初推出的分散式AI框架,能用幾行程式碼,將家用電腦上的原型演算法轉換成適合大規模部署的分散式計算應用。

Pandas on Ray的效能雖說比不上另一個分散式DataFrame庫Dask,但更容易上手,用起來和Pandas幾乎沒有差別。使用者不需要懂分散式計算,也不用學一個新的API。

與Dask不同的是,Ray使用了Apache Arrow裡的共享記憶體物件儲存,不需要對資料進行序列化和複製,就能跨程式通訊。

640?wx_fmt=png

 在8核32G記憶體的AWS m5.2xlarge例項上,Ray、Dask和Pandas讀取csv的效能對比

它將Pandas包裹起來並透明地把資料和計算分佈出去。使用者不需要知道他們的系統或者叢集有多少核,也不用指定如何分配資料,可以繼續用之前的Pandas notebook。

前面說過,使用Pandas on Ray需要替換一行程式碼,其實就是換掉匯入語句。

# import pandas as pd
import ray.dataframe as pd

這時候你應該看到:

640?wx_fmt=png

初始化完成,Ray自動識別了你機器上可用的核心,接下來的用法,就和Pandas一樣了。

Pandas on Ray目前還處於早期,實現了Pandas的一部分功能。以一個股票波動的資料集為例,它所支援的Pandas功能包括檢查資料、查詢上漲的天數、按日期索引、按日期查詢、查詢股票上漲的所有日期等等。

這個專案的最終目標是在Ray上完整實現Pandas API的功能,讓使用者可以在雲上用Pandas。

目前,伯克利RiseLab的研究員們已經用45天時間,實現了Pandas DataFrame API的25%。

640?wx_fmt=jpeg

革命尚未成功,專案仍在繼續。這些人都在為之努力:

Devin Petersohn, Robert Nishihara, Philipp Moritz, Simon Mo, Kunal Gosar, Helen Che, Harikaran Subbaraj, Peter Veerman, Rohan Singh, Joseph Gonzalez, Ion Stoica, Anthony Joseph

更深入地瞭解Pandas on Ray請看RiseLab部落格原文:
https://rise.cs.berkeley.edu/blog/pandas-on-ray/

試用Pandas on Ray請參考這個文件:
https://rise.cs.berkeley.edu/blog/pandas-on-ray/

給Ray團隊提要求請到GitHub開issue:
https://github.com/ray-project/ray/issues

如果對Ray感興趣,可以讀一讀他們的論文:
https://arxiv.org/abs/1712.05889

加入社群

量子位AI社群15群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot6入群;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進群請加小助手微訊號qbitbot6,並務必備註相應群的關鍵詞~通過稽核後我們將邀請進群。(專業群稽核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

640?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態


相關文章