(根据最新情况进行修正)
毋庸置疑,Spark已经成为最火的大数据工具,本文详细介绍安装SparkR的方法,让你在5分钟之内能在本地使用。
环境要求:java 7+ 、R 及 Rstudio
Rtools
(下载地址:https://cran.r-project.org/bin/windows/Rtools/)
第一步:下载Spark
在浏览器打开 http://spark.apache.org/,点击右边的绿色按钮“Download Spark”
你会看到如下页面:
按照上面的 1到
3 创建下载链接。
在“2. Choose a package
type” 选项中,选择一个 pre-built
的类型(如下图)。
因为我们打算在Windows下本地运行,所以选择 Pre-built package for Hadoop 2.6 and later 。
在“3. Choose a download type” 选择 “Direct Download” 。
选好之后,一个下载链接就在4. Download Spark”创建好了。
把这个压缩文件下载到你的电脑上。
第二步:解压缩安装文件
解压缩到路径“C:/Apache/Spark-1.4.1″
第三步:用命令行运行(此步需要配置完成R和其他的环境变量后才能生效,如果不需要命令行窗口,可直接跳过此步骤)
打开命令行窗口(开始-搜索框中输入cmd),更改路径:
输入命令 ".insparkR"
成功后会看到一些日志,大约15s后,一切顺利的话,会有
“Welcome
to SparkR!”
设置环境变量:
在“我的电脑”右击,选择“属性”:
选择“Advanced system settings”
点击“Environment Variables”,在下面的“System variables“里面找到Path,并加入“C:ProgramDataOracleJavajavapath;“
第四步:在Rstudio中运行
#(附一个例子) # Set the system environment variables Sys.setenv(SPARK_HOME = "C:/Apache/spark-1.6.1") .libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
#注意把spark-1.6.1目录下R目录下的lib里面的SparkR放入R的library里面,否则无法直接安装sparkR的包
R的library地址可通过如下方式进行查看:
.libPaths()
默认情况下会将新的lib库安装在第一个地址中(默认地址)
#load the Sparkr library library(SparkR) # Create a spark context and a SQL context sc <- sparkR.init(master = "local") sqlContext <- sparkRSQL.init(sc) #create a sparkR DataFrame DF <- createDataFrame(sqlContext, faithful) head(DF) # Create a simple local data.frame localDF <- data.frame(name=c("John", "Smith", "Sarah"), age=c(19, 23, 18)) # Convert local data frame to a SparkR DataFrame df <- createDataFrame(sqlContext, localDF) # Print its schema printSchema(df) # root # |-- name: string (nullable = true) # |-- age: double (nullable = true) # Create a DataFrame from a JSON file path <- file.path(Sys.getenv("SPARK_HOME"), "examples/src/main/resources/people.json") peopleDF <- jsonFile(sqlContext, path) printSchema(peopleDF) # Register this DataFrame as a table. registerTempTable(peopleDF, "people") # SQL statements can be run by using the sql methods provided by sqlContext teenagers <- sql(sqlContext, "SELECT name FROM people WHERE age >= 13 AND age <= 19") # Call collect to get a local data.frame teenagersLocalDF <- collect(teenagers) # Print the teenagers in our dataset print(teenagersLocalDF) # Stop the SparkContext now sparkR.stop()
# 另一个例子 wordcount-------------- # 来源 http://www.cnblogs.com/hseagle/p/3998853.html sc <- sparkR.init(master="local", "RwordCount") lines <- textFile(sc, "README.md")
——————“textFile”函数从sparkR1.4之后就无法使用了,之后的sparkR必须通过SqlContext来加载数据,如下所示:
people <- read.df(sqlContext, "./examples/src/main/resources/people.json", "json" )
除此之外还支持csv、parquet
、hive数据等等。
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]], " ") }
原文地址:http://www.r-bloggers.com/installing-and-starting-sparkr-locally-on-windows-os-and-rstudio/
参考资料:
1. 安装 http://blog.csdn.net/jediael_lu/article/details/45310321
2. 安装 http://thinkerou.com/2015-05/How-to-Build-Spark-on-Windows/
3. 徽沪一郎的博客:http://www.cnblogs.com/hseagle/p/3998853.html
4. 学习 http://www.r-bloggers.com/a-first-look-at-spark/
5. 学习 http://www.danielemaasit.com/getting-started-with-sparkr/
6. 错误解决:http://stackoverflow.com/questions/10077689/r-cmd-on-windows-7-error-r-is-not-recognized-as-an-internal-or-external-comm
7.SparkR官方指导 http://spark.apache.org/docs/latest/sparkr.html#from-local-data-frames(中文版:http://www.iteblog.com/archives/1385)