SparkR详解

Spark是处理大数据的利器,R是统计学的利器,SparkR的诞生可以让数据分析人员方便的处理海量数据成为可能。SparkR是一个R语言包,它提供了轻量级的方式使得可以在R语言中使用Apache Spark。在Spark 1.4中,SparkR实现了分布式的data frame,支持类似查询、过滤以及聚合的操作(类似于R中的data frames:dplyr),但是这个可以操作大规模的TB级别的数据集。本文首先介绍SparkR的安装,然后介绍SparkR的操作。

一. R和RStudio等安装

(1)安装R 3.X版本

sudo apt-get update

sudo apt-get install r-base-core=3.2.2-1trusty0

(2)安装R 2.X版本

sudo apt-get install r-base-core=2.15.3-1precise0precise1

通过上述方式安装的是R 3.X版本,但是好多包还不支持该版本。还可以采用编译源码的方式安装:

./configure --prefix=/home/essex/R --enable-R-shlib

sudo apt-get install build-essential

sudo apt-get install gfortran

sudo apt-get install libreadline6-dev

sudo apt-get install libxt-dev

make

make install

全部安装完毕后,配置R_HOME,R_LIBS和PATH。其中,export R_LIBS=${R_HOME}/lib/R/library。

查看R相应版本,如下所示:

说明:通过命令sudo lsb_release -a查看系统当前的ubuntu版本号。R 2.X和R 3.X版本安装一个即可。

(3)安装RStudio

说明:解压即可,配置环境变量后,直接输入rstudio启动。

(4)安装SparkR

解析:

sudo R CMD javareconf

install.packages("rJava")

下载SparkR的源码:SparkR-pkg-master.zip(https://github.com/amplab-extras/SparkR-pkg

编译SparkR源码:HADOOP_SPARK_VERSION=2.6.0 SPARK_VERSION=1.5.2 ./install-dev.sh

编译成功后,进入lib文件夹,打包SparkR为SparkR.tar.gz,然后R CMD INSTALL SparkR.tar.gz即可。

说明:rJava是R与Java交互通信的包,rJava,rhdfs,rmr2,rhbase,RHive以此类推。貌似rhdfs等还不支持R 3.X版本。

二. RStudio和sparkR操作Spark集群

首先启动Hadoop和Spark集群,如下所示:

(1)RStdio操作Spark集群

(2)sparkR操作Spark集群

说明:启动bin/sparkR,在该shell下面即可使用R操作Hadoop和Spark集群。

SparkContext是SparkR的切入点,它使得你的R程序和Spark集群互通。你可以通过sparkR.init()来构建SparkContext,然后可以传入类似于应用程序名称的选项给它。如果想使用DataFrames,我们得创建SQLContext,这个可以通过SparkContext来构造。如果你使用SparkR shell,SQLContext 和SparkContext会自动地构建好。如果在RStudio中调用Spark集群,那么需要手工创建。其实,与Scala操作Spark集群完全类似。如下所示:

sc <- sparkR.init()

sqlContext <- sparkRSQL.init(sc)

下面举个例子,如下所示:

参考文献:

[1] ubuntu下安装R:http://blog.sina.com.cn/s/blog_6583048d01018ac5.html

[2] SparkR-pkg:https://github.com/amplab-extras/SparkR-pkg

[3] Spark以及SparkR的安装:

[4] SparkR的安装及使用:http://www.cnblogs.com/hseagle/p/3998853.html?utm_source=tuicool&utm_medium=referral

[5] 在Yarn上运行spark-shell和spark-sql命令行:http://lxw1234.com/archives/2015/08/448.htm

[6] How read json/csv file in SparkR?:http://stackoverflow.com/questions/32352439/how-read-json-csv-file-in-sparkr

[7] SparkR (R on Spark):http://spark.apache.org/docs/latest/sparkr.html

[8] Loading com.databricks.spark.csv via RStudio:http://stackoverflow.com/questions/30870379/loading-com-databricks-spark-csv-via-rstudio/30909511

[9] Cloudera Hadoop CDH上安装R及RHadoop(rhdfs/rmr2/rhbase/RHive):http://www.geedoo.info/installed-on-the-cloudera-hadoop-cdh-r-and-rhadoop-rhdfs-rmr2-rhbase-rhive.html

[10] R: rJava package install failing:http://stackoverflow.com/questions/3311940/r-rjava-package-install-failing

[11] 解惑rJava R与Java的高速通道:http://blog.fens.me/r-rjava-java/

[12] R语言为Hadoop注入统计血脉:http://www.csdn.net/article/2014-02-28/2818579-r-hadoop-intro

[13] RHadoop安装与使用:http://cos.name/2013/03/rhadoop2-rhadoop/

[14] RHadoop:http://wenku.baidu.com/link?url=HeLvvfXNu-OzjGguVmxATbA-vhzgiwIi59fa2lA8CUcvoDJrO7QxmSMvwvo9QruVviy5wupWFfY7HY7SCeLERShb6DMDbKLBht7azWQpXee

[15] SparkR的安装和实例:http://weibo.com/p/23041864a8c8930102vbk3

[16] Index of /cran/bin/linux/ubuntu/:http://mirror.bjtu.edu.cn/cran/bin/linux/ubuntu/

[17] Ubuntu下编译安装R全记录:http://www.linuxidc.com/Linux/2014-12/111040.htm

[18] rpy2安装使用中的问题:

[19] SparkR安装部署及数据分析实例:http://www.cnblogs.com/payton/p/4227770.html

时间: 2024-10-22 00:11:17

SparkR详解的相关文章

Spark详解

? Spark概述 当前,MapReduce编程模型已经成为主流的分布式编程模型,它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上.但是MapReduce也存在一些缺陷,如高延迟.不支持DAG模型.Map与Reduce的中间数据落地等.因此在近两年,社区出现了优化改进MapReduce的项目,如交互查询引擎Impala.支持DAG的TEZ.支持内存计算Spark等.Spark是UC Berkeley AMP lab开源的通用并行计算框架,以其先进的设计理念,已经

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

转载:DenseNet算法详解

原文连接:http://blog.csdn.net/u014380165/article/details/75142664 参考连接:http://blog.csdn.net/u012938704/article/details/53468483 本文这里仅当学习笔记使用,具体细节建议前往原文细度. 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:h

MariaDB(MySQL)创建、删除、选择及数据类型使用详解

一.MariaDB简介(MySQL简介略过) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL A

HttpServletResponse和HttpServletRequest详解

HttpServletResponse,HttpServletRequest详解 1.相关的接口 HttpServletRequest HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据.同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息.下表是接口HttpServletRequest的常用方法. 说明:HttpServ

POSIX 线程详解(经典必看)

总共三部分: 第一部分:POSIX 线程详解                                   Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  2000 年 7 月 01 日 第二部分:通用线程:POSIX 线程详解,第 2部分       Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  20

.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)

阅读目录: 1.环路执行对象模型.碎片化执行模型(假递归式调用) 2.N层对象执行模型(纵横向对比链式扩展方法) 3.LINQ查询表达式和链式查询方法其实都是空壳子 4.详细的对象结构图(对象的执行原理) 5.IQueryable<T>与IQueryProvider一对一的关系能否改成一对多的关系 6.完整的自定义查询 1]. 环路执行对象模型.碎片化执行模型(假递归式调用) 这个主题扯的可能有点远,但是它关系着整个LINQ框架的设计结构,至少在我还没有搞懂LINQ的本意之前,在我脑海里一直频

netstat状态详解

一.生产服务器netstat tcp连接状态................................................................................ 2 1.1生产服务器某个业务LVS负载均衡上连接状态数量............................................... 2 1.2生产服务器某个业务web上连接状态数量...............................................

详解go语言的array和slice 【二】

上一篇  详解go语言的array和slice [一]已经讲解过,array和slice的一些基本用法,使用array和slice时需要注意的地方,特别是slice需要注意的地方比较多.上一篇的最后讲解到创建新的slice时使用第三个索引来限制slice的容量,在操作新slice时,如果新slice的容量大于长度时,添加新元素依然后使源的相应元素改变.这一篇里我会讲解到如何避免这些问题,以及迭代.和做为方法参数方面的知识点. slice的长度和容量设置为同一个值 如果在创建新的slice时我们把