Nasıl yapılır? paralel hale getirmek R Code spark.lapply

R kodu sürücü ve R verileri üzerinde çalıştığı için R Code paralelleştirme zordur. çerçeveler dağıtılmadı. Genellikle, yerel olarak çalıştırılan ve Apache Spark üzerinde çalışacak şekilde dönüştürülen var olan R kodu vardır. Diğer durumlarda, gelişmiş istatistiksel analizler ve makine öğrenimi teknikleri için kullanılan bazı mini r işlevleri dağıtılmış bilgi işlem desteği vermeyebilir. Bu gibi durumlarda, bir küme genelinde istenen iş yükünü dağıtmak için parlak r UDF API 'SI kullanılabilir.

Örnek kullanım örneği: birden çok makine öğrenimi modelini aynı verilerde (örneğin, Hyper parametre ayarlaması için) eğitebilmeniz gerekir. Veri kümesi her bir çalışana sığıyorsa, modelin birkaç sürümünü aynı anda eğitebilmeniz için, Mini-mini r UDF API 'sini kullanmak daha verimli olabilir.

İşlevi, bir spark.lapply öğe listesi üzerinde bir işlev çalıştırarak birden fazla çalışan üzerinde aynı görevi gerçekleştirmenize olanak sağlar. Bir listedeki her öğe için:

  1. İşlevi bir çalışana gönderin.
  2. İşlevi yürütün.
  3. Tüm çalışanların sonucunu sürücüye bir liste olarak döndürün.

Aşağıdaki örnekte, bir destek vektör makinesi modeli iris 3 katlı çapraz doğrulamaya sahip veri kümesine uygun olmakla birlikte, maliyet 0,5 ' lik artışlarla 1 ' e farklılık 0,1 gösterir. Çıktı, çeşitli maliyet parametrelerine ait modellerin özetini içeren bir listesidir.

library(SparkR)

spark.lapply(seq(0.5, 1, by = 0.1), function(x) {
  library(e1071)
  model <- svm(Species ~ ., iris, cost = x, cross = 3)
  summary(model)
})

Not

Paketleri tüm çalışanlara yüklemelisiniz.