Sparklyr与Docker的推荐系统实战

概述

大数据时代,做数据分析的人才辈出,Java、Scala、Go、Julia、Python、JavaScript都不断涌现出很多数据分析的新工具,然而对于数据分析来说,这些工具都不是分析的核心,分析的核心在于对市场业务、对具体数据的理解。相信你也见过太多脱离具体应用场景和业务数据而空谈算法的『数据分析大师』了。算法的文章在教科书、论文、已经各种文章里面都是大把大把的,然而大道至简,真正能将算法转化为生产力解决实际问题才是关键。

640?wx_fmt=jpeg

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

640?wx_fmt=jpeg


什么是Sparklyr

Sparklyr顾名思义就是 Spark + dplyr。首先,它实现了将dplyr的data frame所有操作规范对Spark计算引擎的完整封装。其次,它是的R可以透过Spark的MLib机器学习库拓展分布式机器学习算法的能力。最后,对于其他Spark功能,我们还可以通过`sparkapi`来调用所有Spark库中的Scala接口。

目前,最新版本的RStudio 已经集成了Spark引擎,本文将带你快速进入大数据分析领域。

640?wx_fmt=jpeg

什么是Docker

Docker是类似于虚拟机的一种虚拟化软件,让我们可以在不同操作系统上运行相同的软件。它主要解决了虚拟机安装软件速度比较慢的问题,相对于虚拟机,Docker的启动速度是秒级的。本文将通过一个详细的例子,指导各位R语言的爱好者快速安装带有Spark功能的RStudio软件,快速开启您的大数据之旅。


软件安装

鉴于大量数据分析用户还是以Windows操作系统为主,或许还深度绑定了Excel这样的数据分析神器,本文将放弃以Unix视角,采用Windows视角为各位看官介绍软件安装过程。

步骤一:安装Windows版本Docker

你可以进入http://www.docker.com的官网首页,看到软件下载链接,这里需要您的操作系统在Windows 10及其以上版本。如果不想进入官网,也可以点击这个链接:download.docker.com/win

下载之后根据系统提示默认安装即可,不得不说,Docker是一个神奇的软件。


步骤二:启动Docker软件


640?wx_fmt=png

点击软件图标即可启动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软件。

640?wx_fmt=jpeg


推荐系统实战

library(sparkxgb)
library(sparklyr)
library(dplyr)
library(nycflights13)
Sys.setenv(SPARK_HOME="/opt/spark-2.4.0-bin-hadoop2.7")
Sys.getenv("SPARK_HOME")
sc = spark_connect("local")
spark_flights <- sdf_copy_to(sc, flights)

以 Xgboost 模型为例 建立一个航班延误的推荐模型

pak::pkg_install("sparkxgb") 
library(sparkxgb)

spark_flights <- sdf_copy_to(sc, flights)

xgb_pipeline <- ml_pipeline(sc) %>%
ft_dplyr_transformer(
tbl = spark_flights
) %>%
ft_binarizer(
input.col = "dep_delay",
output.col = "delayed",
threshold = 15
) %>%
ft_bucketizer(
input.col = "sched_dep_time",
output.col = "hours",
splits = c(400, 800, 1200, 1600, 2000, 2400)

) %>%

xgboost_classifier(delayed ~ month + day + hours + distance,
num_class = 3,num_round = 50, max_depth = 4)

num_class = 3,num_round = 50, max_depth = 4)


640?wx_fmt=jpeg
xgboost pipeline

参考资料

  • RStudio又搞出了个大杀器!sparklyr包:实现Spark与R的接口,会用dplyr就能玩Spark


  • Using Spark with Shiny and R Markdown Slide

  • channel9.msdn.com/Event Video

  • blogs.msdn.microsoft.com

  • databricks.com/blog/201

  • conferences.oreilly.com

  • Top 5 Mistakes When Writing Spark Applications


640?wx_fmt=png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值