Apache Spark技術實戰之5 -- SparkR的安裝及使用

徽滬一郎發表於2014-09-28

歡迎轉載,轉載請註明出處,徽滬一郎。

概要

根據論壇上的資訊,在Sparkrelease計劃中,在Spark 1.3中有將SparkR納入到發行版的可能。本文就提前展示一下如何安裝及使用SparkR.

SparkR的出現解決了R語言中無法級聯擴充套件的難題,同時也極大的豐富了Spark在機器學習方面能夠使用的Lib庫。SparkR和Spark MLLIB將共同構建出Spark在機器學習方面的優勢地位。

使用SparkR能讓使用者同時使用Spark RDD提供的豐富Api,也可以呼叫R語言中豐富的Lib庫。

安裝SparkR

先決條件

  1. 已經安裝好openjdk 7
  2. 安裝好了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叢集的監聽地址即可

小結

時間匆忙,還有兩件事情沒有來得及細細分析。

  1. SparkR的程式碼實現
  2. 如果很好的將R中支援的資料探勘演算法與Spark並行化處理能力很好的結合

參考資料

  1. https://github.com/amplab-extras/SparkR-pkg

 

相關文章