Python开发人员的数据库
本节提供使用Python语言在Databricks中开发笔记本和作业的指南。第一小节提供了常见工作流和任务的教程链接。第二小节提供了到api、库和关键工具的链接。
入门的基本工作流程是:
导入代码:从文件或Git回购中导入自己的代码,或尝试下面列出的教程。Databricks建议使用交互式的Databricks笔记本进行学习。
在集群上运行代码:创建自己的集群,或者确保您拥有使用共享集群的权限。将笔记本连接到集群,并运行笔记本。
除此之外,你还可以拓展到更具体的话题:
教程
下面的教程提供了示例代码和笔记本,以了解常见的工作流程。看到导入笔记本电脑有关如何将笔记本示例导入工作空间的说明。
交互式数据科学和机器学习
开始使用Apache Spark DataFrames进行数据准备和分析:教程:在Databricks上使用PySpark DataFrames
教程:Databricks上的端到端ML模型.有关其他示例,请参见教程:开始学习ML和MLflow指南Python快速入门.
砖AutoML让您快速开始在自己的数据集上开发机器学习模型。它的玻璃盒方法生成带有完整机器学习工作流的笔记本,您可以克隆、修改和重新运行。
工程数据
教程:在Databricks上使用PySpark DataFrames提供了一个演练,帮助您了解Apache Spark DataFrames用于数据准备和分析。
Delta Live Tables快速入门提供了Delta Live表的演练,以构建和管理可靠的数据管道,包括Python示例。
Python笔记中的调试
示例笔记本演示了如何在Databricks笔记本中使用Python调试器(pdb)。要使用Python调试器,必须运行Databricks Runtime 11.2或更高版本。
请注意
断点()
是在IPython中不支持因此不能在Databricks笔记本中使用。你可以使用进口pdb;pdb.set_trace ()
而不是断点()
.
参考
下面的小节列出了帮助您开始使用Python在Databricks中开发的关键特性和技巧。
Python api
在Databricks外部运行的Python代码通常可以在Databricks内部运行,反之亦然。如果您有现有的代码,只需将其导入Databricks即可开始。看到使用笔记本和Databricks Repos管理代码详情如下。
数据库既可以运行单机,也可以运行分布式Python工作负载。对于单机计算,你可以像往常一样使用Python api和库;例如,熊猫和scikit-learn将“只是工作”。对于分布式Python工作负载,Databricks提供了两个开箱即用的流行API: Spark上的Pandas API和PySpark上的Pandas API。
Spark上的Pandas API
请注意
的考拉开源项目现在建议切换到Spark上的Pandas API。Spark上的Pandas API在正在运行的集群上可用Databricks Runtime 10.0(不支持)及以上。对于运行的集群Databricks Runtime 9.1 LTS下面,使用考拉代替。
熊猫是数据科学家通常用于数据分析和操作的Python包。然而,熊猫并不能扩展到大数据。Spark上的Pandas API通过提供在Apache Spark上工作的熊猫等效api来填补这一空白。这开源API是熟悉pandas但不熟悉Apache Spark的数据科学家的理想选择。
使用笔记本和Databricks Repos管理代码
砖的笔记本支持Python。这些笔记本提供了类似于Jupyter的功能,但增加了一些功能,比如使用大数据的内置可视化,用于调试和性能监控的Apache Spark集成,以及用于跟踪机器学习实验的MLflow集成。从以下开始导入笔记本电脑.一旦您可以访问集群,您就可以附上笔记本到集群和运行笔记本.
提示
要完全重置笔记本的状态,可以重新启动iPython内核。对于Jupyter用户,Jupyter中的“重启内核”选项对应于在Databricks中卸载和重新加载笔记本。要重新启动Python笔记本中的内核,请单击左上方的集群下拉菜单,然后单击分离和重新连接.这将从集群中分离笔记本并重新连接它,这会重新启动Python进程。
砖回购允许用户将笔记本和其他文件与Git存储库同步。Databricks Repos有助于代码版本控制和协作,它可以简化将完整的代码存储库导入Databricks,查看过去的笔记本版本,并与IDE开发集成。从以下开始克隆远程Git存储库.然后,您可以使用存储库克隆打开或创建笔记本,附上笔记本到集群,和运行笔记本.
集群和库
砖集群为任何规模的集群提供计算管理:从单节点集群到大型集群。您可以根据需要定制集群硬件和库。数据科学家通常会从创建集群或者使用现有的共享的集群.一旦您可以访问集群,您就可以附上笔记本到集群或运行作业集群上。
Databricks集群使用Databricks运行时,该运行时提供了许多开箱即用的流行库,包括Apache Spark、Delta Lake、pandas等等。您还可以安装额外的第三方或自定义Python库,用于笔记本电脑和作业。
中的默认库开始砖运行时.使用Databricks运行时机器学习用于机器学习工作负载。有关预安装库的完整列表,请参见Databricks运行时发布.
使用以下命令定制环境笔记本范围的Python库,它允许您使用来自PyPI或其他存储库的库修改您的笔记本或工作环境。的
%皮普安装my_library
魔术命令安装my_library
到当前连接的集群中的所有节点,但不会影响共享集群上的其他工作负载。安装非python库,如集群库根据需要。
详情请参见库.
可视化
Databricks Python笔记本内置了许多类型的支持可视化.你也可以使用传统的可视化.
您还可以使用第三方库可视化数据;有些是预安装在Databricks运行时,但您也可以安装自定义库。常见的选项包括:
工作
您可以按照计划或触发自动执行Python工作负载创建、运行和管理Databricks作业在砖。作业可以运行笔记本电脑、Python脚本和Python轮子。
提示
要调度Python脚本而不是笔记本,请使用spark_python_task
磁场下任务
在create job request的正文中。
机器学习
Databricks支持各种各样的机器学习(ML)工作负载,包括基于表格数据的传统机器学习、用于计算机视觉和自然语言处理的深度学习、推荐系统、图形分析等。有关Databricks上机器学习的一般信息,请参阅Databricks机器学习指南.
对于ML算法,可以使用中预安装的库Databricks运行时机器学习,其中包括流行的Python工具,如scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib和XGBoost。你也可以安装自定义库.
对于机器学习操作(MLOps), Databricks为开源库MLflow提供了托管服务。bob下载地址MLflow跟踪允许您记录模型开发并以可重用的格式保存模型;的MLflow模型注册表让您管理和自动化模型的生产推广;而且工作和模型服务,与无服务器实时推理或经典MLflow模型服务,允许托管模型作为批处理和流作业以及REST端点。有关更多信息和示例,请参见MLflow指南或者是MLflow Python API文档.
要开始使用常见的机器学习工作负载,请参阅以下页面:
训练scikit-learn和MLflow跟踪:10分钟教程:使用scikit-learn在Databricks上进行机器学习
训练深度学习模型:深度学习
Hyperparameter调优:使用scikit-learn和MLflow并行超参数调优
ide、开发工具和api
除了在Databricks笔记本中开发Python代码外,您还可以使用集成开发环境(ide)进行外部开发,如PyCharm、Jupyter和Visual Studio code。要在外部开发环境和Databricks之间同步工作,有以下几个选项:
代码:可以使用Git同步代码。看到Git与Databricks Repos的集成.
图书馆和工作:您可以在外部创建库(如轮子),并将它们上传到Databricks。这些库可以导入到Databricks笔记本中,也可以用于创建作业。看到库而且创建、运行和管理Databricks作业.
远程机器执行:您可以从本地IDE运行代码进行交互开发和测试。IDE可以与Databricks通信,在Databricks集群上执行大型计算。要学会使用砖连接要创建此连接,请参见使用ide和Databricks.
Databricks提供了一整套支持自动化和与外部工具集成的REST api。您可以使用api来管理集群和库、代码和其他工作空间对象、工作负载和作业等资源。看到REST API(最新).
有关ide、开发人员工具和api的更多信息,请参见开发人员工具和指导.
额外的资源
的砖学院在许多主题上提供自定进度和教师指导的课程。
支持PySpark和pandas之间互操作性的特性
Python和SQL数据库连接
的Databricks SQL连接器for Python允许您使用Python代码在Databricks资源上运行SQL命令。
pyodbc允许您从本地Python代码通过ODBC连接到存储在Databricks Lakehouse中的数据。
将Python工作负载转移到Databricks的常见问题和技巧