1 回答

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