R开发人员的数据库
本节提供使用R语言在Databricks中开发笔记本和作业的指南。
入门的基本工作流程是:
导入代码:从文件或Git回购中导入自己的代码,或尝试下面列出的教程。Databricks建议使用交互式的Databricks笔记本学习。
在集群上运行代码:创建自己的集群,或者确保您拥有使用共享集群的权限。将笔记本连接到集群,并运行笔记本。
除此之外,你还可以拓展到更具体的话题:
参考
下面的小节列出了帮助您开始用R开发Databricks的关键特性和技巧。
Databricks支持两种api,为Apache Spark提供R接口:SparkR而且sparklyr.
SparkR
这些文章提供了一个介绍和参考SparkR.SparkR是Apache Spark的R接口,提供分布式数据帧实现。SparkR支持选择、过滤和聚合(类似于R数据帧)等操作,但适用于大型数据集。
使用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版本:
需要(devtools)install_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'
详情请参见库.
安装定制包进入图书馆:
从命令行或使用RStudio.
使用数据库命令行设置和文档将自定义包文件从开发机器复制到DBFS用于您的Databricks工作区。
例如:
Databricks fs cp /local/path/to/package/
.tar.gz dbfs:/path/to/tar/file/ 运行将自定义包安装到库中
install.packages
.例如,在你工作空间的笔记本上:
install.packages(包裹=“/ dbfs /道路/ /沥青/文件/ < custom_package > gz”,类型=“源”,回购=零)
或者:
%sh R CMD INSTALL /dbfs/path/to/tar/file/
.tar.gz .gz . sh命令
在DBFS中的库中安装自定义包后,可以将库添加到搜索路径,然后用一个命令加载库。
例如:
#将库添加到搜索路径一次。.libPaths(c(“/ dbfs /道路/ /沥青/文件/”,.libPaths()))#加载库。您不需要再次将库添加到搜索路径。图书馆(<custom_package>)
将自定义包作为库安装在每一个集群中的节点,必须使用集群节点初始化脚本.
工作
您可以自动工作负载调度或触发笔记本创建、运行和管理Databricks作业在砖。
机器学习
Databricks支持各种各样的机器学习(ML)工作负载,包括基于表格数据的传统机器学习、用于计算机视觉和自然语言处理的深度学习、推荐系统、图形分析等。有关Databricks上机器学习的一般信息,请参阅Databricks机器学习指南.
对于ML算法,可以使用中预安装的库Databricks运行时机器学习.你也可以安装自定义库.
对于机器学习操作(MLOps), Databricks为开源库MLflow提供了托管服务。bob下载地址MLflow跟踪允许您记录模型开发并以可重用的格式保存模型;的MLflow模型注册表让您管理和自动化模型的生产推广;而且工作和模型服务,与无服务器实时推理或经典MLflow模型服务,允许托管模型作为批处理和流作业作为REST端点。有关更多信息和示例,请参见MLflow指南或者是MLflow R API文档.
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
.