簡體   English   中英

Azure Databricks:Python 並行循環

[英]Azure Databricks: Python parallel for loop

我正在使用 Azure Databricks 來分析一些數據。 我在 blob 存儲中有以下文件夾結構:

folder_1\n1 csv files
folder_2\n2 csv files
..
folder_k\nk csv files

我想讀取這些文件,運行一些算法(相對簡單)並在另一個 blob 存儲位置的類似文件夾結構中為每個 csv 文件寫出一些日志文件和圖像文件。 現在我有一個簡單的循環結構來做到這一點:

for folder in folders:
  #set up some stuff
  for file in files:
    #do the work and write out results

該數據庫包含 150k 個文件。 有沒有辦法並行化這個?

我發現在databricks中並行化這種令人尷尬的並行任務的最佳方法是使用pandas UDF( https://databricks.com/blog/2020/05/20/new-pandas-udfs-and-python-type- the-upcoming-release-of-apache-spark-3-0.html?_ga=2.143957493.1972283838.1643225636-354359200.1607978015

我創建了一個 spark dataframe,其中包含要循環的文件和文件夾列表,將其傳遞給具有指定分區數量的 pandas UDF(基本上是要並行化的核心)。 這可以利用數據塊集群上的可用內核。 從 pandas UDF 調用的內容有一些限制(例如,不能直接使用“dbutils”調用),但它對我的應用程序來說就像一個魅力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM