Sparklyr与Docker的推荐系统实战

概述

 

大数据时代,做数据分析的人才辈出,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及其以上版本。如果不想进入官网,也可以点击这个链接:download.docker.com/win

 

下载之后根据系统提示默认安装即可,不得不说,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(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)

 

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注