1 回答

TA貢獻1797條經驗 獲得超4個贊
Spark提供了輕量的前端。SparkR提供了Spark中彈性分布式數據集(RDD)的API,用戶可以在集群上通過R
shell交互性的運行job。例如,我們可以在HDFS上讀取或寫入文件,也可以使用 lapply 來定義對應每一個RDD元素的運算。
sc <- sparkR.init(“local”)
lines <- textFile(sc, “hdfs://data.txt”)
wordsPerLine <- lapply(lines, function(line) { length(unlist(strsplit(line, “ ”))) })
除了常見的RDD函數式算子reduce、reduceByKey、groupByKey和collect之外,SparkR也支持利用
lapplyWithPartition 對每個RDD的分區進行操作。
SparkR也支持常見的閉包(closure)功能:用戶定義的函數中所引用到的變量會自動被發送到集群中其他的機器上。參見一下例子中用戶閉包中引用的
initialWeights 會被自動發送到集群其他機器上。
lines <- textFile(sc, “hdfs://data.txt”)
#niniaialWeights is automatically serialized
createMatrix <- function(line) {
as.numeric(unlist(strsplit(line, “ ”))) %*% t(initialWeights)
}
- 1 回答
- 0 關注
- 881 瀏覽
添加回答
舉報