当前位置:首页 > 操作系统 > Windows

【转+修正】在Windows和Rstudio下本地安装SparkR

(根据最新情况进行修正)

毋庸置疑,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中运行?

 

            <span>?#(附一个例子)

?# Set the system environment variables

Sys.setenv(SPARK_HOME </span>= <span>"</span><span>C:/Apache/spark-1.6.1</span><span>"</span><span>)

.libPaths(c(file.path(Sys.getenv(</span><span>"</span><span>SPARK_HOME</span><span>"</span>), <span>"</span><span>R</span><span>"</span>, <span>"</span><span>lib</span><span>"</span>), .libPaths()))

 

 

 

#注意把spark-1.6.1目录下R目录下的lib里面的SparkR放入R的library里面,否则无法直接安装sparkR的包?

 

            <span>R的library地址可通过如下方式进行查看:<br />
.libPaths()

默认情况下会将新的lib库安装在第一个地址中(默认地址)</span>
        

 

 

 

            <span>#load the Sparkr library

library(SparkR)

# Create a spark context and a SQL context

sc </span><- sparkR.init(master = <span>"</span><span>local</span><span>"</span><span>)

sqlContext </span><-<span> sparkRSQL.init(sc)

#create a sparkR DataFrame

DF </span><-<span> createDataFrame(sqlContext, faithful)

head(DF)

# Create a simple local data.frame

localDF </span><- data.frame(name=c(<span>"</span><span>John</span><span>"</span>, <span>"</span><span>Smith</span><span>"</span>, <span>"</span><span>Sarah</span><span>"</span>), age=c(<span>19</span>, <span>23</span>, <span>18</span><span>))

# Convert local data frame to a SparkR DataFrame

df </span><-<span> createDataFrame(sqlContext, localDF)

# Print its schema

printSchema(df)

# root

# </span>|-- name: <span>string</span> (nullable = <span>true</span><span>)

# </span>|-- age: <span>double</span> (nullable = <span>true</span><span>)

# Create a DataFrame </span><span>from</span><span> a JSON file

path </span><- file.path(Sys.getenv(<span>"</span><span>SPARK_HOME</span><span>"</span>), <span>"</span><span>examples/src/main/resources/people.json</span><span>"</span><span>)

peopleDF </span><-<span> jsonFile(sqlContext, path)

printSchema(peopleDF)

# Register </span><span>this</span> DataFrame <span>as</span><span> a table.

registerTempTable(peopleDF, </span><span>"</span><span>people</span><span>"</span><span>)

# SQL statements can be run by </span><span>using</span><span> the sql methods provided by sqlContext

teenagers </span><- sql(sqlContext, <span>"</span><span>SELECT name FROM people WHERE age >= 13 AND age <= 19</span><span>"</span><span>)

# Call collect to </span><span>get</span><span> a local data.frame

teenagersLocalDF </span><-<span> collect(teenagers)

# Print the teenagers </span><span>in</span><span> our dataset

print(teenagersLocalDF)

# Stop the SparkContext now

sparkR.stop()</span>

 

?

# 另一个例子 wordcount--------------<span>

# 来源 http:</span><span>//</span><span>www.cnblogs.com/hseagle/p/3998853.html</span><span>
sc </span><- sparkR.init(master=<span>"</span><span>local</span><span>"</span>, <span>"</span><span>RwordCount</span><span>"</span><span>)

lines </span><- textFile(sc, <span>"</span><span>README.md</span><span>"</span><span>)</span>
                <span>
                    <span>——————“textFile”函数从sparkR1.4之后就无法使用了,之后的sparkR必须通过SqlContext来加载数据,如下所示:</span>
                </span>
                <br />people <-<span> read.df(sqlContext,
</span><span>"</span><span>./examples/src/main/resources/people.json</span><span>"</span>, <span>"</span><span>json</span><span>"</span><span>
)<br />除此之外还支持csv、<code>parquet</code>、hive数据等等。<br /></span>
            <span>
words </span><-<span> flatMap(lines,

                 function(line) {

                   strsplit(line, </span><span>"</span><span>"</span>)[[<span>1</span><span>]]

                 })

wordCount </span><- lapply(words, function(word) { list(word, <span>1L</span><span>) })

counts </span><- reduceByKey(wordCount, <span>"</span><span>+</span><span>"</span>, <span>2L</span><span>)

output </span><-<span> collect(counts)

</span><span>for</span> (wordcount <span>in</span><span> output) {

  cat(wordcount[[</span><span>1</span>]], <span>"</span><span>: </span><span>"</span>, wordcount[[<span>2</span>]], <span>"</span><span>
</span><span>"</span><span>)

}</span>

 

 

?原文地址: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)

原文:http://www.cnblogs.com/taisenki/p/5551844.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐