1.8 Spark notebook简介
在本节中,我们首先讨论有关面向机器学习的notebook方法。然后,我们介绍R Markdown,以其作为一个成熟的notebook案例,最后介绍Spark中的R notebook。
学习完本节,读者将掌握notebook相关的方法和概念,并为将其用于管理和开发机器学习项目做好准备。
1.8.1 面向机器学习的notebook方法
notebook已经成为众人青睐的机器学习工具,因为该工具既能动态驱动,还具备可重复生成的特点。
大部分notebook接口由一系列代码块(称为单元)构成。其开发过程是一个探索的过程,开发者借此可以在一个单元中开发和运行代码,然后基于上一个单元的结果继续编写下一单元代码。特别是机器学习从业者分析大型数据集时,这种交互式方法利于从业者迅速发现数据模式或提出数据洞见。因此,notebook型的开发过程提供了探索式和交互式途径来编写代码,并可立即检查结果。
notebook允许用户在同一文件中无缝地融合代码、输出和注释,这便于机器学习从业者在后一阶段复用他们的工作。
采用notebook方法确保了可复用性,分析与计算、展现的一致性,从而结束了研究管理的复制和粘贴方式。
具体而言,运用notebook,用户可以实现:
迭代分析
透明报告
无缝协作
清晰计算
涵盖结果等的评估推理
以统一方式,notebook方法也为机器学习实践集成提供了许多分析工具
关于使用重现方法的更多信息,请访问:http://chance.amstat.org/2014/09/reproducible-paradigm/(R Markdown)。
R Markdown是一款非常流行的工具,可以帮助数据科学家和机器学习从业者生成动态报告,也能帮助他们重复使用分析流程。R Markdown是一种先进的notebook工具。
参照RStudio的说明:
“R Markdown是一种标签格式,允许方便地制作来源于R语言中可复写的web报表。通过把Markdown核心语法(一种易于编写网页内容的纯文本格式)与嵌入运行的R代码块连接,输出结果将包含在最终文件中。”
这样,我们可以使用R语言和Markdown程序包加上其他一些第三方相关的程序包,比如knitr,编写可复用的分析报告。然而,如果整合使用RStudio和Markdown包,将使数据科学家的工作变得更简便。
对R语言用户来说,使用Markdown非常容易。下面我们通过一个例子,说明如何使用三个简单的步骤创建一个报告。
第1步:做好软件准备
1.下载RStudio软件,网址:http://rstudio.org/。
2.设置RStudio选项:在菜单“Tools >Options”下,单击“Sweave”,选择“Knitr at Weave Rnw files using Knitr”。
第2步:安装Knitr包
1.在RStudio中安装包,你可以选择菜单“Tools >Install Packages”,然后可选择一个CRAN镜像站点和包进行安装。安装包的另一种方法是使用函数install.packages()。
2.为安装源自Carnegi Mellon Statlib CRAN镜像站点下的knitr包,我们可以使用函数命令:install.packages(“knitr”, repos = “http://lib.stat.cmu.edu/R/CRAN/”)。
第3步:创建一个简单的报告
1.单击菜单“File >New >R Markdown”,创建一个空白R Markdown文件。接下来将打开一个新建的.Rmd文件。
2.当你创建了空白文件,会看到一个已经写好的模块。
一个简单的方法是用你自己的信息替换相应的部分内容。
3.输入所有信息后,单击“Knit HTML”。
4.现在你会看到已经生成一个.html文件。
1.8.2 Spark notebook
目前,有一些与Apache Spark计算兼容的notebook。其中,由Spark原创团队开发的Databricks是最好的。Databricks notebook与R Markdown类似,但Databricks notebook实现了与Apache Spark无缝集成。
除了SQL、Python和Scala,现在Databricks notebook也可用于R语言,并且Spark 1.4默认包含了SparkR包。也就是说,从现在开始,数据科学家和机器学习从业者在R语言环境中通过在Spark之上编写和运行R notebook,就可毫不费力地从Apache Spark强大的能力中获益。
除了SparkR,通过运用install.packages(),能够十分方便地在Databricks的R notebook中安装R程序包。因此,数据科学家和机器学习从业者运用Databricks R notebook,即可获得Spark上R Markdown的技术功效。数据科学家和机器学习从业者可以(使用SparkR)访问和操作分布式存储(如亚马逊S3)或数据仓库(如Hive)上的大数据集(例如TB级的数据)。甚至,他们可以收集SparkR DataFrame的数据到本地的数据框中。
可视化是机器学习项目的重要组成部分。在R notebook中,数据科学家和机器学习从业者可以使用任何R语言的可视化库,包括R基本绘图函数,ggplot或者Lattice。如同R Markdown,绘图在R notebook中内联显示。用户可以对R DataFrame或SparkR DataFrame应用Databricks的内置函数display()。其结果在notebook显示为一个表,随后点击就可绘图。类似于其他(如Python notebook)的Databricks notebook,数据科学家还可以在R notebook里使用displayHTML()函数,生成任意基于HTML和Javascript的可视化。
Databricks端到端的解决方案也使建立从采集到生产的机器学习pipeline模型更加简便,应用于R notebook时,数据科学家可在Spark集群上安排R notebook作业的运行。包括可视化在内的每个运行作业的结果,可立即被浏览,这样使得工作到生产力的转化效率更加简洁快速。
综上所述,Databricks R notebook运用简约的Spark集群管理、丰富的一键可视化和生产作业的即时部署,让R语言用户充分利用了Spark的强大功能。Databricks R notebook提供了一个30天的免费试用。
请访问:https://databricks.com/blog/2015/07/13/introducing-r-notebooks-in-dat-a-br-icks.html。