Sparklyr与Docker的推荐系统实战
链接:https://zhuanlan.zhihu.com/p/21574497
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关内容:
sparklyr包:实现Spark与R的接口,会用dplyr就能玩Spark
概述
大数据时代,做数据分析的人才辈出,Java、Scala、Go、Julia、Python、JavaScript都不断涌现出很多数据分析的新工具,然而对于数据分析来说,这些工具都不是分析的核心,分析的核心在于对市场业务、对具体数据的理解。相信你也见过太多脱离具体应用场景和业务数据而空谈算法的『数据分析大师』了。算法的文章在教科书、论文、已经各种文章里面都是大把大把的,然而大道至简,真正能将算法转化为生产力解决实际问题才是关键。

作为统计学出身的人,真心无力折腾Java的设计模式、JS的异步回调,我们更倾向于把精力放在数据、模型、分析、拟合、预测、检验、报告等等。在SparkR之后,RStudio公司又推出了全新力作Sparklyr,全面继承dplyr的操作规范。通过Sparklyr和Docker的完美结合,Spark的大数据计算引擎门槛进一步降低!不仅仅简化了分布式计算的操作,还简化了安装部署的环节,我们只几乎不需要做什么改动就可以直接运用R中的dplyr进行分布式的计算,几乎不需要学习此前Scala风格的API。

什么是Sparklyr
Sparklyr顾名思义就是 Spark + dplyr。首先,它实现了将dplyr的data frame所有操作规范对Spark计算引擎的完整封装。其次,它是的R可以透过Spark的MLib机器学习库拓展分布式机器学习算法的能力。最后,对于其他Spark功能,我们还可以通过`sparkapi`来调用所有Spark库中的Scala接口。
目前,最新版本的RStudio 已经集成了Spark引擎,本文将带你快速进入大数据分析领域。

什么是Docker
Docker是类似于虚拟机的一种虚拟化软件,让我们可以在不同操作系统上运行相同的软件。它主要解决了虚拟机安装软件速度比较慢的问题,相对于虚拟机,Docker的启动速度是秒级的。本文将通过一个详细的例子,指导各位R语言的爱好者快速安装带有Spark功能的RStudio软件,快速开启您的大数据之旅。
软件安装
鉴于大量数据分析用户还是以Windows操作系统为主,或许还深度绑定了Excel这样的数据分析神器,本文将放弃以Unix视角,采用Windows视角为各位看官介绍软件安装过程。
步骤一:安装Windows版本Docker
你可以进入http://www.docker.com的官网首页,看到软件下载链接,这里需要您的操作系统在Windows
10及其以上版本。如果不想进入官网,也可以点击这个链接:https://download.docker.com/win/beta/InstallDocker.msi
下载之后根据系统提示默认安装即可,不得不说,Docker是一个神奇的软件。
步骤二:启动Docker软件

点击软件图标即可启动Docker软件(最新版本号和此图有可能并不一致)。接着,您可以选择打开系统自带Powershell软件,向Powershell中复制粘贴如下命令:
docker run -d -p 8787:8787 --name financer index.tenxcloud.com/7harryprince/sparkr-rstudio
这时候只需要耐心等待您的大数据分析系统安装完成。(软件大概会占用4G左右的空间,我已经为你预先为你一站式安装了最新的 Shiny, R markdown,R notebook,jdk8,gcc5.3,R 3.3 以及其他数据分析常用的R包)
步骤三:访问RStuido软件
一旦软件完成安装,你可以在Chrome或者Edge中输入下面的地址访问到RStudio软件:
localhost:8787
最后,输入默认账号`harryzhu`,密码`harryzhu`即可进入RStudio软件。

推荐系统实战
library(sparklyr)
library(dplyr)
Sys.setenv(SPARK_HOME="/opt/spark-1.6.0-bin-hadoop2.6")
Sys.getenv("SPARK_HOME")
sc = spark_connect("local")
mtcars_tbl <- copy_to(sc, mtcars,overwrite = TRUE)
未完
求各位看官给点反馈~~~
参考资料
- RStudio又搞出了个大杀器!sparklyr包:实现Spark与R的接口,会用dplyr就能玩Spark
- Using Spark with Shiny and R Markdown Slide
- https://channel9.msdn.com/Events/useR-international-R-User-conference/useR2016/Using-Spark-with-Shiny-and-R-Markdown
Video - https://blogs.msdn.microsoft.com/azuredatalake/2016/08/09/rapid-big-data-prototyping-with-microsoft-r-server-on-apache-spark-context-switching-spark-tuning/
- https://databricks.com/blog/2016/07/07/sparkr-tutorial-at-user-2016.html?twitter=@bigdata
- http://conferences.oreilly.com/strata/hadoop-big-data-ny/public/schedule/detail/52369?twitter=@bigdata
- Top 5 Mistakes When Writing Spark Applications
Sparklyr与Docker的推荐系统实战的更多相关文章
- 云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)
2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功 能还是相当复杂得,并且维护复杂.将特殊性封装到 ...
- 【推荐系统实战】:C++实现基于用户的协同过滤(UserCollaborativeFilter)
好早的时候就打算写这篇文章,可是还是參加阿里大数据竞赛的第一季三月份的时候实验就完毕了.硬生生是拖到了十一假期.自己也是醉了... 找工作不是非常顺利,希望写点东西回想一下知识.然后再攒点人品吧,仅仅 ...
- Docker系列之实战:3.安装MariaDB
环境 [root@centos181001 ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) [root@centos1 ...
- Docker小白到实战之容器数据卷,整理的明明白白
前言 上一篇把常用命令演示了一遍,其中也提到容器的隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失.从隔离性的角度来看,数据就应该和容器共存亡:但 ...
- Docker小白到实战之Dockerfile解析及实战演示,果然顺手
前言 使用第三方镜像肯定不是学习Docker的最终目的,最想要的还是自己构建镜像:将自己的程序.文件.环境等构建成自己想要的应用镜像,方便后续部署.启动和维护:而Dockerfile就是专门做这个事的 ...
- Docker小白到实战之Docker网络简单了解一下
前言 现在对于Docker容器的隔离性都有所了解了,但对容器IP地址的分配.容器间的访问等还是有点小疑问,如果容器的IP由于新启动导致变动,那又怎么才能保证原有业务不会被影响,这就和网络有挂钩了,接下 ...
- Docker基础与实战,看这一篇就够了
docker 基础 什么是Docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Uni ...
- 《Docker基础与实战,看这一篇就够了》
什么是Docker? Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术 ...
- Docker单机网络实战
前言 Docker系列文章: 此篇是Docker系列的第八篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习Docker Docker基本概念 Docker镜像基本原理 ...
随机推荐
- CentOS6.9编译安装nginx1.4.7
1.系统安装开发包组和zlib-devel,关闭iptables [root@bogon ~]# yum groupinstall -y "Development Tools" [ ...
- HttpURLConnection用法
在SDK中的URLConnection链接Servlet的问题 1.URL的请求分类GET和POST GET请求可以获取页面静态的值,参数放URL后,传给Serverlct POST的参数是存放于ht ...
- BZOJ 1076: [SCOI2008]奖励关 [DP 期望 状压]
传送门 题意:$n$种宝物,出现$k$次每次一种,每种宝物有价值和吃掉它之前必须要吃掉的宝物的集合,求采取最优策略的期望最大价值 1<=k<=100,1<=n<=15,分值为[ ...
- 数据分析之pandas教程-----概念篇
目录 1 pandas基本概念 1.1 pandas数据结构剖析 1.1.1 Series 1.1.2 DataFrame 1.1.3 索引 1.1.4 pandas基本操作 1.1.4. ...
- boost编译随笔
boost下载地址 编译 生成bjam.exe 1.下载boost源码,可以直接使用上面给出的1.60.0版本 2.解压下载到的boost文件,例如解压到 x:\boost_1_60_0 3.使用Vi ...
- idea Code激活
参考:http://blog.csdn.net/gnail_oug/article/details/70677272 1.将激活包复制到bin安装目录: 2.在安装的idea下面的bin目录下面有2个 ...
- S5PV210中断处理
_start: 1.设置栈空间:防止之前的UBOOT代码被覆盖,应为c中需要栈空间 ldr sp, =0x40010000 2.设置CPSR的I,F位,A8打开IRQ,FIQ中断: mov r0, # ...
- qt中的事件机制
事件 1.QEvent -->类型 -> QKeyEvent QEvent::KeyRelease QEvent::MouseMove -> QMouseEvent 2.事件处理过程 ...
- PHP中的http协议
PHP中的http协议 http协议基本组成 报文:用于Http协议交互的信息 请求行:包括请求的方法,URL和HTTP协议版本 状态行:包括响应结果的状态码,状态描述和Http版本 首部字段:包括请 ...
- ★Linux命令行操作技巧(作为服务器端)
1.统计某个目录下总共有多少个文件(递归统计所有子目录)ls -lR|grep "^-"|wc -l