云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

金山云_外部数据库_试用

小七 141 0

Jupyter Bridges本地和远程工作流的新Databricks集成

介绍多年来,数据科学家已经使用本地文件系统层次结构、源代码修订系统和CI/CD进程来开发特定的工作流。另一方面,可用数据正呈指数级增长,需要新的数据分析和建模功能,例如,易于扩展的存储、分布式计算系统或用于深入学习的gpu等新技术的专用硬件。这些功能很难以灵活的方式提供内部部署。因此,越来越多的公司利用云端的解决方案,数据科学家面临着将现有本地工作流与这些新的基于云的功能相结合的挑战。发表在Databricks实验室的JupyterLab集成项目就是为了在这两个世界之间架起桥梁。数据科学家可以使用他们熟悉的JupyterLab本地环境,只需选择一个内核就可以处理远程数据和远程集群。通过本地JupyterLab集成启用的示例场景:在远程集群上执行单节点data science Jupyter笔记本电脑,这些集群由Databricks维护,可以访问远程数据湖。在Databricks GPU集群上运行深度学习代码。运行具有集成用户体验的远程Spark作业(进度条、DBFS浏览器…)。很容易遵循深入学习教程,其中的设置基于Jupyter或JupyterLab,并在Databricks集群上运行代码。本地镜像远程集群环境(python和库版本),只需选择Jupyter内核就可以在本地和远程执行之间无缝切换。这篇博客文章首先简要概述了如何使用本地JupyterLab的远程Databricks集群。然后,它提供了一个使用JupyterLab集成的端到端示例,然后解释了与Databricks Connect的区别。如果您想自己尝试,最后一节将解释安装过程。从本地Jupyterlab使用远程集群JupyterLab集成遵循Jupyter/JupyterLab的标准方法,并允许您为远程Databricks集群创建Jupyter内核(这将在下一节中解释)。要使用JupyterLab集成,请使用标准命令启动JupyterLab:$jupyter实验室在notebook中,从菜单中选择远程内核以连接到远程Databricks集群,并使用以下Python代码获取Spark会话:从DataBrickSlab_jupyterlab.connect导入dbcontext数据库上下文()下图显示了这个过程和JupyterLab集成的一些特性。Databricks JupyterLab集成-端到端示例在为JupyterLab集成配置Databricks集群之前,让我们了解如何标识它:Databricks集群在Databricks数据科学工作区的云中运行。可以使用Databricks CLI从本地终端维护这些工作区。Databricks CLI将工作区的URL和个人访问令牌存储在本地配置文件中的一个可选择的概要文件名下。JupyterLab集成使用这个概要文件名来引用Databricks工作区,例如工作区的demodemo.cloud.databricks.com。为JupyterLab配置远程内核假设JupyterLab集成已经安装并配置为镜像一个名为bernhard-5.5ml的远程集群(关于安装的详细信息,请参阅本文末尾)。第一步是为远程集群创建一个Jupyter内核规范,例如在具有profile name demo的工作区中:(bernhard-6.1ml)$alias dj=databrickslab jupyterlab(bernhard-6.1毫升)$dj演示-k通过以下向导,您可以在workspace demo中选择远程群集,将其驱动程序IP地址存储在本地ssh配置文件中,并在远程驱动程序上安装一些必要的运行库:最后,一个新的内核SSH 1104-182503-trust65演示:bernhard-6.1ml在JupyterLab中可用(名称是远程集群id 1104-182503-trust65、Databricks CLI profile name demo、远程集群名称bernhard-6.1ml和可选的本地conda环境名称的组合)。使用Databricks集成启动JupyterLab现在我们有两种选择来启动JupyterLab,第一种方法是:(bernhard-6.1毫升)$jupyter实验室当远程集群已经启动并运行并且其本地配置是最新的时,这将完美地工作。但是,启动JupyterLab进行JupyterLab集成的首选方法是(bernhard-6.1ml)$dj演示-l-c此命令自动启动远程群集(如果终止),在驱动程序上安装运行时库"ipykernel"和"ipywidgets",并在本地保存驱动程序的远程IP地址。作为一个不错的副作用,使用flag-c,个人访问令牌会自动复制到剪贴板。在笔记本的下一步中,您将需要令牌来针对远程群集进行身份验证。需要注意的是,个人访问令牌不会存储在远程集群上。在Jupyter笔记本中获取Spark上下文要在连接到此远程内核的Jupyter笔记本中创建Spark会话,请在笔记本单元格中输入以下两行:从DataBrickSlab_jupyterlab.connect导入dbcontext,是远程的数据库上下文()这将请求输入个人访问令牌(上面复制到剪贴板的令牌),然后将笔记本连接到远程Spark上下文。在本地和远程运行超参数调整以下代码将同时在本地Python内核和远程Databricks内核上运行。在本地运行时,它将使用scikit learn的GridSearchCV,并使用一个小的超参数空间。运行在远程Databricks内核上,它将利用spark sklearn在spark执行器之间分发超参数优化。对于本地和远程环境的不同设置(例如数据路径),可以使用JupyterLab Integration的函数isu remote()。定义本地和远程的数据位置并加载GridSearchCV如果is_remote():从functools导入部分从spark_sklearn导入GridSearchCVGridSearchCV=部分(GridSearchCV,sc)#添加Spark上下文data_path="/dbfs/bernhard"/数字.csv"其他:从sklearn.model_选择导入GridSearchCV数据路径=("/Users/bernhardwalter/data/digits/数字.csv")加载数据将熊猫作为pd导入数字=pd.read_csv文件(数据路径,索引列=无)十、 y=数字.iloc[:,1:-1],数字.iloc[:,-1]为本地和远程执行定义不同的超参数空间从sklearn.Ensement公司导入RandomForestClassifier如果is_remote():参数网格={"最大深度":[3,5,10,15],"max_features":自动、"sqrt"、"log2"、无],"min_samples_split":[2,5,10],"min_samples_leaf":[1,3,10],"n_估计值":[10,15,25,50,75,100]}#864选项其他:参数网格={"最大深度":[3,无],"最大特征":[1,3],"min_samples_split":[2,10],"min_samples_leaf":[1,10],"n_估计量":[10,20]}#32个选项cv=GridSearchCV(RandomForestClassifier(),参数网格,cv=3)等速配合(X,y)最后,对模型进行评价最佳=最佳简历指数_cv_结果=cv.cv_结果_打印("平均测试成绩",简历结果平均测试成绩"][最佳],"std_test_score",cv_results std_test_score"][最佳])简历结果参数"][best]以下是本地和远程运行的动画演示:JupyterLab集成和数据库连接Databricks Connect允许您将喜爱的IDE、笔记本服务器和其他自定义应用程序连接到Databricks集群。它提供了一个特殊的本地Spark上下文,基本上是远程Spark上下文的代理。只有Spark代码将在远程群集上执行。这意味着,例如,如果您在Databricks中启动一个GPU节点进行一些深度学习实验,那么使用Databricks Connect,您的代码将在笔记本电脑上运行,并且不会利用远程计算机的GPU:数据库连接体系结构另一方面,JupyterLab集成将笔记本保留在本地,但如果选择了远程内核,则会在远程集群上运行所有代码。这使您的本地JupyterLab能够在Databricks维护的远程环境中运行单节点数据科学笔记本(使用pandas、scikit learn等),或者在远程Databricks GPU机器上运行深度学习代码。您的本地JupyterLab还可以在Databricks集群上执行分布式Spark作业,进度条提供Spark作业的状态。JupyterLab集成架构此外,您可以设置一个本地conda环境来镜像远程集群。您可以开始在本地构建您的实验,在这里您可以完全控制您的环境、进程,并且可以轻松访问所有日志文件。当代码稳定时,您可以使用远程集群将其应用于完整的远程数据集,或者在远程集群上进行分布式超参数优化,而无需每次运行都上载数据。注意:如果笔记本电脑连接到远程集群,它的Python内核运行在远程集群上,并且Python和Spark既不能访问本地配置文件,也不能访问本地数据。要在本地笔记本电脑和远程群集上的DBFS之间交换文件,请使用Databricks CLI来回复制数据:$databricks—配置文件$profile fs cp/DATA/abc.csv公司dbfs:/数据因为Pandas不能通过DBFS:/访问DBFS中的文件,所以有一个挂载点/DBFS/允许访问DBFS中的数据(比如/DBFS/data/abc.csv公司)使用标准的Python库。JupyterLab集成安装在我们了解了JupyterLab集成的工作原理之后,让我们看看如何安装它。先决条件JupyterLab集成将在AWS和Azure数据库上运行。此设置基于Databricks CLI配置,并假定:已安装Anaconda(稍后将安装JupyterLab集成的库)Databricks CLI是为要使用的工作区安装和配置的将为您要使用的集群创建SSH密钥对您要使用的集群启用了SSH,并且安装了来自3的公钥注:目前仅此