歡迎轉載,轉載請註明出處,徽滬一郎。
概要
根據論壇上的資訊,在Sparkrelease計劃中,在Spark 1.3中有將SparkR納入到發行版的可能。本文就提前展示一下如何安裝及使用SparkR.
SparkR的出現解決了R語言中無法級聯擴充套件的難題,同時也極大的豐富了Spark在機器學習方面能夠使用的Lib庫。SparkR和Spark MLLIB將共同構建出Spark在機器學習方面的優勢地位。
使用SparkR能讓使用者同時使用Spark RDD提供的豐富Api,也可以呼叫R語言中豐富的Lib庫。
安裝SparkR
先決條件
- 已經安裝好openjdk 7
- 安裝好了R
安裝步驟:
步驟1: 執行R Shell
bash# R
步驟2:在R shell中安裝rJava
install.packages("rJava")
步驟3: 在R shell中安裝devtools
install.packages("devtools")
步驟4: 安裝好rJava及devtools,接下來安裝SparkR
library(devtools)
install_github("amplab-extras/SparkR-pkg", subdir="pkg")
使用SparkR來執行wordcount
安裝完SparkR之後,可以用wordcount來檢驗安裝正確與否。
步驟1:在R shell中載入SparkR
library(SparkR)
步驟2:初始化SparkContext及執行wordcount
sc <- sparkR.init(master="local", "RwordCount")
lines <- textFile(sc, "README.md")
words <- flatMap(lines,
function(line) {
strsplit(line, " ")[[1]]
})
wordCount <- lapply(words, function(word) { list(word, 1L) })
counts <- reduceByKey(wordCount, "+", 2L)
output <- collect(counts)
for (wordcount in output) {
cat(wordcount[[1]], ": ", wordcount[[2]], "\n")
}
如果想將SparkR執行於叢集環境中,只需要將master=local,換成spark叢集的監聽地址即可
小結
時間匆忙,還有兩件事情沒有來得及細細分析。
- SparkR的程式碼實現
- 如果很好的將R中支援的資料探勘演算法與Spark並行化處理能力很好的結合
參考資料
- https://github.com/amplab-extras/SparkR-pkg