SparkR

2015-10-22 13 views
7

'daki uygulama işlevlerini kullanma Şu anda sparkR sürüm 1.5.1'i kullanarak bazı işlevleri uygulamaya çalışıyorum. Daha eski (sürüm 1.3) örneklerini gördük, burada insanlar DataFrames'te uygulama işlevini kullandılar, ancak bunun artık doğrudan mevcut olmadığı anlaşılıyor. Örnek: Ben hata alıyorum DataFrameSparkR

xDF_S$result = sapply(xDF_S$number, ppois, q=10) 

benzer bir mantık kullandığınızda Şimdi

x = c(1,2) 
xDF_R = data.frame(x) 
colnames(xDF_R) = c("number") 
xDF_S = createDataFrame(sqlContext,xDF_R) 

, ben data.frame nesne

xDF_R$result = sapply(xDF_R$number, ppois, q=10) 

işlev sapply kullanabilirsiniz ileti "as.list.default (X) dosyasındaki hata: bu S4 sınıfını bir vektöre zorlamak için yöntem yok"

Bunu bir şekilde yapabilir miyim?

cevap

0

Bu, user defined functions in Spark 2.0 ile mümkündür. doğrudan ilave argümanlar geçemez çünkü

wrapper = function(df){ 
+  out = df 
+  out$result = sapply(df$number, ppois, q=10) 
+  return(out) 
+ } 
> xDF_S2 = dapplyCollect(xDF_S, wrapper) 
> identical(xDF_S2, xDF_R) 
[1] TRUE 

Not Böyle bir sarıcı işlevi gerekir, ancak bu gelecekte değişebilir.