R开发人员的数据库

本节提供使用R语言在Databricks中开发笔记本和作业的指南。

入门的基本工作流程是:

  1. 导入代码:从文件或Git回购中导入自己的代码,或尝试下面列出的教程。Databricks建议使用交互式的Databricks笔记本学习。

  2. 在集群上运行代码:创建自己的集群,或者确保您拥有使用共享集群的权限。将笔记本连接到集群,并运行笔记本。

除此之外,你还可以拓展到更具体的话题:

教程

下面的教程提供了示例代码和笔记本,以了解常见的工作流程。看到导入笔记本电脑有关如何将笔记本示例导入工作空间的说明。

参考

下面的小节列出了帮助您开始用R开发Databricks的关键特性和技巧。

Databricks支持两种api,为Apache Spark提供R接口:SparkR而且sparklyr

SparkR

这些文章提供了一个介绍和参考SparkR.SparkR是Apache Spark的R接口,提供分布式数据帧实现。SparkR支持选择、过滤和聚合(类似于R数据帧)等操作,但适用于大型数据集。

sparklyr

本文提供了一个介绍sparklyr.sparklyr是一个到Apache Spark的R接口,提供类似于dplyr扫帚,DBI

比较SparkR和sparklyr

本文解释了SparkR和sparklyr之间的主要相似点和不同点。

使用SparkR和sparklyr处理DataFrames和表

本文介绍如何使用R、SparkR、sparklyr和dplyr来处理R data.frames、Spark DataFrames和Databricks中的Spark表。

使用笔记本和Databricks Repos管理代码

笔记本电脑这些笔记本提供了类似于Jupyter的功能,但增加了诸如使用大数据的内置可视化,用于调试和性能监控的Apache Spark集成,以及用于跟踪机器学习实验的MLflow集成。从以下开始导入笔记本电脑.一旦您可以访问集群,您就可以附上笔记本到集群和运行笔记本

回购允许用户将笔记本和其他文件与Git存储库同步。Databricks Repos有助于代码版本控制和协作,它可以简化将完整的代码存储库导入Databricks,查看过去的笔记本版本,并与IDE开发集成。从以下开始克隆远程Git存储库.然后,您可以使用存储库克隆打开或创建笔记本,附上笔记本到集群,和运行笔记本

集群

集群为单个节点和大型集群提供计算管理。您可以根据需要定制集群硬件和库。数据科学家通常会从创建集群或者使用现有的共享的集群.一旦您可以访问集群,您就可以附上笔记本到集群或运行作业集群上。

单节点R和分布式R

数据集群由一个Apache Spark组成司机节点和零个或多个Spark工人(亦称遗嘱执行人)节点。驱动节点维护连接的笔记本状态,维护SparkContext解释笔记本和库命令,运行Spark master,与Spark执行器协调。工作节点运行Spark执行器,每个工作节点一个Spark执行器。

一个单独的节点集群只有一个驱动节点,没有工作节点,Spark以本地模式运行,支持对Databricks管理的表的访问。单节点集群支持RStudio、笔记本、库和DBFS,对于不依赖Spark进行大数据或并行处理的R项目非常有用。看到单节点集群

对于R难以处理的数据大小(许多千兆字节或拍字节),您应该使用多节点或分布式集群。分布式集群有一个驱动节点和一个或多个工作节点。分布式集群不仅支持RStudio、笔记本电脑、库和DBFS,而且R包(如SparkR和sparklyr)也专门设计用于通过SparkContext.这些包提供了熟悉的SQL和DataFrame api,允许在工作节点上并行分配和运行各种Spark任务和命令。要了解BOB低频彩有关sparklyr和SparkR的更多信息,请参见比较SparkR和sparklyr

一些SparkR和sparklyr函数特别利用跨工作节点分配相关工作,包括:

  • sparklyr: spark_apply:在集群内大规模运行任意R代码。这对于使用仅在R中可用的功能,或在Apache Spark或其他Spark包中不可用的R包尤其有用。

  • SparkR::有斑纹的:将指定的函数应用到分区的每个分区SparkDataFrame

  • SparkR: dapplyCollect:将指定的函数应用到分区的每个分区SparkDataFrame并将结果收集回R作为adata.frame

  • SparkR:新闻出版总署: a组SparkDataFrame通过使用指定的列,并对每个组应用指定的R函数。

  • SparkR: gapplyCollect: a组SparkDataFrame通过指定的列,对每个组应用指定的R函数,并将结果作为a收集回Rdata.frame

  • SparkR: spark.lapply:在元素列表上运行指定的函数,使用Spark分发计算。

有关例子,请参阅笔记本分布式R: Spark中的用户定义函数

Databricks容器服务

Databricks容器服务允许您在创建集群时指定Docker映像。Databricks提供databricksruntime / rbase以Docker Hub上的base image为例,启动支持R的Databricks Container Services集群。另请参阅Dockerfile用于生成基本图像。

Databricks集群使用Databricks Runtime,后者提供了许多开箱即用的流行库,包括Apache Spark、Delta Lake等等。您还可以在库中安装额外的第三方或自定义R包,以便与笔记本和作业一起使用。

中的默认库开始砖运行时.使用Databricks运行时机器学习用于机器学习工作负载。有关预安装库的完整列表,请参阅目标Databricks Runtime的“已安装R库”部分Databricks运行时发布

您可以使用笔记本范围的R库,它允许您使用CRAN或其他存储库中的库修改您的笔记本或工作环境。要做到这一点,你可以使用熟悉的方法install.packages函数跑龙套.下面的示例安装Arrow R包从默认的CRAN存储库:

install.packages“箭头”

如果您需要一个比Databricks Runtime中包含的版本更老的版本,您可以使用笔记本来运行install_version函数devtools.下面的示例安装dplyr0.7.4版本:

需要devtoolsinstall_version“dplyr”版本“0.7.4”回购“http://cran.r-project.org”

以这种方式安装的包可以在整个集群中使用。它们的作用域仅限于安装它们的用户。这使您可以在同一计算上安装同一包的多个版本,而不会产生包冲突。

您可以安装其他库集群库根据需要,例如从CRAN。为此,在集群用户界面中单击>安装新的> CRAN并指定库的名称。当您希望使用SparkR或sparklyr调用用户定义函数时,这种方法尤其重要。

如果需要比默认CRAN回购中包含的版本更旧的版本,请在安装库对话框的存储库字段。例如,安装dplyr的CRAN快照URLhttps://cran.microsoft.com/snapshot/2017-09-29/.可以通过运行packageVersion在笔记本上的功能。例如,获取的安装版本dplyr

packageVersion“dplyr”# [1] '0.7.4'

详情请参见

安装定制包进入图书馆:

  1. 从命令行或使用RStudio

  2. 使用数据库命令行设置和文档将自定义包文件从开发机器复制到DBFS用于您的Databricks工作区。

    例如:

    Databricks fs cp /local/path/to/package/.tar.gz dbfs:/path/to/tar/file/
  3. 运行将自定义包安装到库中install.packages

    例如,在你工作空间的笔记本上:

    install.packages包裹“/ dbfs /道路/ /沥青/文件/ < custom_package > gz”类型“源”回购

    或者:

    %sh R CMD INSTALL /dbfs/path/to/tar/file/.tar.gz .gz . sh命令

在DBFS中的库中安装自定义包后,可以将库添加到搜索路径,然后用一个命令加载库。

例如:

#将库添加到搜索路径一次。.libPathsc“/ dbfs /道路/ /沥青/文件/”.libPaths()))#加载库。您不需要再次将库添加到搜索路径。图书馆<custom_package>

将自定义包作为库安装在每一个集群中的节点,必须使用集群节点初始化脚本

可视化

数据库R笔记本支持各种类型的可视化显示函数。

工作

您可以自动工作负载调度或触发笔记本创建、运行和管理Databricks作业在砖。

机器学习

Databricks支持各种各样的机器学习(ML)工作负载,包括基于表格数据的传统机器学习、用于计算机视觉和自然语言处理的深度学习、推荐系统、图形分析等。有关Databricks上机器学习的一般信息,请参阅Databricks机器学习指南

对于ML算法,可以使用中预安装的库Databricks运行时机器学习.你也可以安装自定义库

对于机器学习操作(MLOps), Databricks为开源库MLflow提供了托管服务。bob下载地址MLflow跟踪允许您记录模型开发并以可重用的格式保存模型;的MLflow模型注册表让您管理和自动化模型的生产推广;而且工作和模型服务,与无服务器实时推理经典MLflow模型服务,允许托管模型作为批处理和流作业作为REST端点。有关更多信息和示例,请参见MLflow指南或者是MLflow R API文档

R开发工具

除了Databricks笔记本,你还可以使用以下R开发工具:

R会话定制

在Databricks Runtime 12.0及以上版本中,R会话可以使用site-wide profile (.Rprofile)文件。R笔记本将在启动期间将文件源作为R代码。要修改文件,请找到的值R_HOME和修改美元R_HOME / etc / Rprofile.site.请注意,Databricks在文件中添加了配置,以确保托管的正常功能RStudio在Databricks上.删除其中任何一个都可能导致RStudio不能正常工作。

在Databricks Runtime 11.3及以下版本中,可以通过设置环境变量启用此行为DATABRICKS_ENABLE_RPROFILE = true

额外的资源