取消
顯示的結果
而不是尋找
你的意思是:

python多處理和磚結構。

kll
新的貢獻者三世

我很好奇是怎麼回事底層時使用的多處理模塊將一個函數調用的並行化,並且把它應用到一個熊貓DataFrame沿著行軸。

具體地說,它是如何工作的磚結構/計算。我的集群配置是:

2 - 8的工人

61 - 244 GB Memory8-32 Cores1司機

30.5 GB內存,4 CoresRuntime

12.2.x-scala2.12

例如,在這裏一些示例代碼:

熊貓作為pd導入導入請求多處理導入池#定義API調用函數def api_call(行):反應= requests.get (f 'https: / /api.example.com/?id= {row [" id "]}”)返回response.json() #數據加載到一個熊貓DataFrame data = pd.read_csv (data.csv) #定義的流程使用num_processes = 4 #創建一個對象池來處理並行處理池=池(過程= num_processes) # API調用函數適用於並行DataFrame結果的每一行=池。地圖(api_call[行索引,行data.iterrows())) #結果合並成一個新的DataFrame輸出= pd.DataFrame(結果)#合並輸出DataFrame回原DataFrame data = pd。concat((數據、輸出),軸= 1)

我隻是想了解,引擎蓋下麵會發生什麼呢?

https://docs.python.org/3/library/multiprocessing.html

3回複3

匿名
不適用

@Keval沙:

當使用多處理模塊在Python函數調用並行化,並且把它應用到一個熊貓DataFrame沿著行軸,以下發生的引擎蓋下麵:

  1. 創建連接池對象與指定數量的過程。
  2. 輸入數據被分割成小塊和分布在可用的流程。
  3. 每個進程api_call函數適用於並行分配塊的數據。
  4. 每個進程的結果進行收集和結合成一個單一的輸出。
  5. 輸出是回歸到原始的DataFrame之中。

磚的建築,多處理模塊的上下文中工作Python解釋器運行在司機節點。司機節點負責編排數據的並行處理整個工人集群中的節點。每個工作節點的運行一個單獨的實例Python解釋器和分配一部分輸入數據並行處理。然後結果返回給司機節點,在組合和合並回原DataFrame。

值得注意的是,磚也提供了自己的並行處理能力通過使用火花DataFrames抽樣,對分布式計算優化大型數據集。如果您正在使用大數據,它可能是更高效的使用這些Spark-based解決方案而不是

多處理

kll
新的貢獻者三世

@Suteja卡努裏人

感謝響應。

所以,鑒於我的磚集群配置是2 - 8工人節點,司機節點分配數據並行處理節點4工人因為我有指定的“4”池中的對象?當我指定的“num_processes”是大於或小於可用的工人節點。

你介意分享我如何實現並行處理的一個例子應用函數沿行軸的大熊貓使用火花和抽樣?

zzy
新的貢獻者三世

嗨Keval,

隻是為了確認你說python多處理會使用工作節點,而不隻是司機節點。我以為工人節點隻用火花框架下所以python多處理隻會創建所有司機的流程節點。有任何修改在磚多處理模塊?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map