如何並行化和spark.lapply R代碼嗎

學習如何使用spark.lapply並行化R代碼。

寫的亞當Pavlacka

去年發表在:2022年5月20日

並行R的代碼是很困難的,因為代碼運行在司機和R data.frames沒有分布。通常,有現有的R是本地運行的代碼轉換為運行在Apache火花。在其他情況下,一些SparkR函數用於先進的統計分析和機器學習技術可能不支持分布式計算。在這種情況下,SparkR UDF API可用於跨集群分發所需的工作量。

示例用例:你想訓練多個機器學習模型在相同的數據,例如超參數調優。如果數據集符合每個工人,它可能是更有效使用SparkR UDF API來訓練模型的幾個版本。

spark.lapply功能使您能夠執行相同的任務在多個工人,通過運行一個函數在一個元素的列表。對於列表中的每個元素:

  1. 函數發送給一個工人。
  2. 執行函數。
  3. 返回結果的所有工人司機列表。

在接下來的例子中,支持向量機模型是適合的虹膜三倍交叉驗證數據集,而成本是不同的從0.5至0.1 1的增量。輸出是一個列表的總結各種成本模型參數。

% r圖書館(SparkR) spark.lapply (seq(0.5, 1 = 0.1),函數(x){圖書館(e1071)模型< - svm(物種~,虹膜,成本= x,交叉= 3)總結(模型)})
刪除

信息

你必須在所有工人安裝包。

這篇文章有用嗎?