dbx由Databricks Labs开发
请注意
本文涵盖了<代码类="docutils literal notranslate">dbx由Databricks Labs提供,Databricks不通过客户技术支持渠道提供支持。问题和特性请求可以通过问题网页databrickslabs / dbx在GitHub上回购。
dbx是一个开放源码的工具,旨在扩展Databricksbob下载地址命令行界面(砖CLI),并在Databricks平台上提供快速开发生命周期、持续集成和持续交付/部署(CI/CD)的功能。bob体育客户端下载
dbx
简化了工作跨多个环境的启动和部署流程。它还有助于以版本化的方式打包项目并将其交付到Databricks环境。它以cli优先的方式设计,被构建为可以在CI/CD管道中积极使用,也可以作为本地工具的一部分(例如本地ide,包括Visual Studio Code和PyCharm)。
典型的开发工作流<代码类="docutils literal notranslate">dbx是:
属性创建远程存储库Git提供者Databricks支持,如果您没有可用的远程回购。
克隆你的远程回购到你的Databricks工作空间。
在Databricks工作区中创建或移动一个Databricks笔记本到克隆的repo。使用这个笔记本开始原型代码,你想要你的数据库集群来运行。
要通过添加单独的helper类和函数、配置文件和测试来增强和模块化笔记本代码,请切换到使用本地开发机器with<代码类="docutils literal notranslate">dbx,您首选的IDE,并安装了Git。
将远程回购复制到本地开发机器。
将代码从笔记本移到一个或多个本地代码文件中。
当您在本地编码时,将您的工作从本地回购推到远程回购。同时,同步您的远程回购与您的Databricks工作区。
提示
或者,您可以使用dbx同步自动将本地文件更改与工作区中的相应文件实时同步。
继续在Databricks工作空间中使用笔记本进行快速原型设计,并将验证过的代码从笔记本移动到本地计算机。继续使用本地IDE完成一些任务,如代码模块化、代码完成、检测、单元测试和代码和对象的分步调试,这些任务不需要连接到Databricks。
使用<代码类="docutils literal notranslate">dbx按需要在目标集群上批量运行本地代码。(这与运行spark-submitSpark的脚本<代码类="docutils literal notranslate">箱子目录来启动Spark集群上的应用程序。)
当您准备好投入生产时,可以使用CI/CD平台,例如bob体育客户端下载GitHub的行为,Azure DevOps,或GitLab在集群上自动运行远程回购代码。
需求
使用<代码类="docutils literal notranslate">dbx,你必须在你的本地开发机器上安装以下软件,不管你的代码是使用Python、Scala还是Java:
Python3.8或以上版本。
如果代码使用Python,则应该使用与目标集群上安装的Python版本相匹配的Python版本。要获取安装在现有集群上的Python版本,可以使用集群的Python版本网络终端运行<代码类="docutils literal notranslate">python——版本命令。中“系统环境”一节Databricks运行时发布获取目标集群的Databricks Runtime版本。
皮普.
如果您的代码使用Python,则可以使用一种方法来创建Python虚拟环境,以确保您在您的应用程序中使用正确的Python版本和包依赖项<代码类="docutils literal notranslate">dbx项目。本文涵盖了pipenv.
dbx0.8.0或以上版本。您可以从Python包索引(PyPI)中安装此包<代码类="docutils literal notranslate">皮普安装dbx.
为了证实这一点<代码类="docutils literal notranslate">dbx安装完成后,执行以下命令:
dbx——版本
如果返回版本号,<代码类="docutils literal notranslate">dbx安装。
如果版本号低于0.8.0,请升级<代码类="docutils literal notranslate">dbx执行如下命令,检查版本号:
PIP安装DBX—升级DBX—版本#或者…Python -m PIP install DBX——upgrade DBX——version
的数据库命令行设置和文档,与身份验证.安装过程中会自动安装Databricks命令行<代码类="docutils literal notranslate">dbx.此身份验证可以在您的本地开发机器上的以下一个或两个位置设置:
在<代码类="docutils literal notranslate">DATABRICKS_HOST而且<代码类="docutils literal notranslate">DATABRICKS_TOKEN环境变量(从Databricks CLI version 0.8.0开始)。
在数据库里配置概要文件在你的<代码类="docutils literal notranslate">.databrickscfg文件。
dbx
分别在这两个位置查找身份验证凭据。<代码类="docutils literal notranslate">dbx只使用它找到的第一组匹配凭据。请注意
dbx
不支持使用. netrc从Databricks CLI version 0.17.2开始。使用该命令查看已安装的Databricks CLI版本<代码类="docutils literal notranslate">砖——版本.git用于推送和同步本地和远程代码更改。
继续使用下列ide之一的说明:
请注意
Databricks已经验证了上述ide的使用情况<代码类="docutils literal notranslate">dbx;然而,<代码类="docutils literal notranslate">dbx应该适用于任何IDE。你也可以使用无IDE(仅限终端).
dbx
优化用于单文件Python代码文件和编译过的Scala和Java JAR文件。<代码类="docutils literal notranslate">dbx不能使用单文件R代码文件或已编译的R代码包。这是因为<代码类="docutils literal notranslate">dbx与Jobs API一起工作2.0而且2.1,这些api不能将单文件R代码文件或已编译的R代码包作为作业运行。
Visual Studio代码
完成以下说明后开始使用Visual Studio代码和Python<代码类="docutils literal notranslate">dbx.
在您的本地开发机器上,除了一般的,还必须安装以下软件需求:
的PythonVisual Studio Code扩展。有关更多信息,请参见扩展市场在Visual Studio Code网站上。
有关更多信息,请参见在VS Code中开始学习Python在Visual Studio Code文档中。
按照这些步骤开始设置你的<代码类="docutils literal notranslate">dbx项目结构:
在终端上创建一个空白文件夹。这些指令使用一个名为<代码类="docutils literal notranslate">dbx-demo.你可以把你的<代码类="docutils literal notranslate">dbx项目根文件夹的任意名称。如果使用不同的名称,请在这些步骤中替换名称。创建文件夹后,切换到该文件夹,然后从该文件夹启动Visual Studio Code。
Linux和macOS:
mkdir dbx-democdDbx-demo代码。
提示
如果<代码类="docutils literal notranslate">命令不发现:代码运行后显示的内容<代码类="docutils literal notranslate">代码.,请参阅从命令行启动在微软网站上。
Windows:
医学博士dbx-democddbx-demo代码.
在Visual Studio Code中,为这个项目创建一个Python虚拟环境:
在菜单栏上,单击查看“>终端”.
的词根<代码类="docutils literal notranslate">dbx-demo文件夹,运行<代码类="docutils literal notranslate">pipenv命令,其中<代码类="docutils literal notranslate"><版本>例如,您已经在本地安装的Python的目标版本(并且,理想情况下,该版本与您的目标集群的Python版本匹配)<代码类="docutils literal notranslate">3.8.14.
Pipenv——python <版本>
注意<代码类="docutils literal notranslate">Virtualenv位置属性的输出中的<代码类="docutils literal notranslate">pipenv命令,因为您将在下一步中需要它。
选择目标Python解释器,然后激活Python虚拟环境:
在菜单栏上,单击查看>命令面板、类型<代码类="docutils literal notranslate">Python:选择,然后按Python:选择解释器.
在您刚刚创建的Python虚拟环境的路径中选择Python解释器。(该路径被列出为<代码类="docutils literal notranslate">Virtualenv位置属性的输出中的<代码类="docutils literal notranslate">pipenv命令。)
在菜单栏上,单击查看>命令面板、类型<代码类="docutils literal notranslate">终端:创建,然后按终端:创建新终端.
有关更多信息,请参见在VS Code中使用Python环境在Visual Studio Code文档中。
继续创建dbx项目.
PyCharm
完成以下说明后开始使用PyCharm和Python<代码类="docutils literal notranslate">dbx.
在您的本地开发机器上,必须有PyCharm除一般安装外需求.
按照这些步骤开始设置你的<代码类="docutils literal notranslate">dbx项目结构:
在PyCharm的菜单栏上,单击文件>新建项目.
在创建项目对话框,为新项目选择一个位置。
扩大Python解释器:新的Pipenv环境.
选择新环境使用,如果尚未选中,则选择Pipenv在下拉列表中。
为基础翻译,选择包含您已经在本地安装的Python目标版本的Python解释器的位置(理想情况下,与您的目标集群的Python版本匹配)。
为Pipenv可执行,选择包含本地安装程序的位置<代码类="docutils literal notranslate">pipenv,如果还没有自动检测到。
如果你想创建一个最小值<代码类="docutils literal notranslate">dbx项目,并且您希望使用<代码类="docutils literal notranslate">main.py用最小值文件<代码类="docutils literal notranslate">dbx项目,然后选择创建一个main.py欢迎脚本盒子。否则,请清除此方框。
点击创建.
在项目工具窗口,右键单击项目的根文件夹,然后单击在>终端打开.
继续创建dbx项目.
IntelliJ IDEA
完成以下说明后开始使用IntelliJ IDEA和Scala<代码类="docutils literal notranslate">dbx.这些说明创建了一个最小的基于sbt的Scala项目,您可以使用它来启动一个<代码类="docutils literal notranslate">dbx项目。
在您的本地开发机器上,除了一般的,还必须安装以下软件需求:
的ScalaIntelliJ IDEA插件。有关更多信息,请参见发现IntelliJ IDEA for ScalaIntelliJ IDEA文档。
Java Runtime Environment (JRE)虽然任何版本的JRE 8都可以工作,但Databricks到目前为止只验证了<代码类="docutils literal notranslate">dbxIntelliJ IDEA和OpenJDK 8 JRE。Databricks尚未验证使用<代码类="docutils literal notranslate">dbxIntelliJ IDEA和Java 11。有关更多信息,请参见Java开发工具包(JDK)IntelliJ IDEA文档。
按照这些步骤开始设置你的<代码类="docutils literal notranslate">dbx项目结构:
步骤1:创建一个基于sbt的Scala项目
在IntelliJ IDEA中,根据视图,单击>新建项目orgydF4y2BaFile >新建>项目.
在新项目对话框中,单击Scala,点击sbt,然后按下一个.
输入项目名称和项目位置。
为JDK,选择您安装的OpenJDK 8 JRE。
为sbt的最高可用版本<代码类="docutils literal notranslate">sbt都列出来了。
为Scala理想情况下,选择与目标集群的Scala版本相匹配的Scala版本。中“系统环境”一节Databricks运行时发布获取目标集群的Databricks Runtime版本。
旁边Scala,选择来源框,如果尚未选中。
添加包前缀包前缀.这些步骤使用包前缀<代码类="docutils literal notranslate">com.example.demo.如果指定了不同的包前缀,请在这些步骤中替换包前缀。
点击完成.
步骤2:向包中添加对象
您可以向包中添加任何必需的对象。这个包包含一个名为<代码类="docutils literal notranslate">一点.
在项目工具窗口(查看> Tool Windows > Project),右键单击项目名称> SRC > main > scala文件夹,然后单击新的> Scala类.
选择对象,输入对象名称,按“Enter”。例如,键入<代码类="docutils literal notranslate">一点.如果您在这里输入了不同的对象名称,请确保在这些步骤中替换该名称。
的内容<代码类="docutils literal notranslate">SampleApp.scala文件包含以下代码:
包com.例子.演示对象一点{def主要(arg游戏:数组[字符串]){}}
步骤3:构建项目
向项目中添加所需的项目构建设置和依赖项。此步骤假设您正在构建在前面步骤中设置的项目,并且它仅依赖于以下库。
替换项目的内容<代码类="docutils literal notranslate">build.sbt文件内容如下:
ThisBuild/版本: =“0.1.0-SNAPSHOT”ThisBuild/scalaVersion: =“2.12.14”瓦尔sparkVersion=“3.2.1”懒惰的瓦尔根=(项目在文件(“。”)).设置(的名字: =“dbx-demo”,idePackagePrefix: =一些(“com.example.demo”),libraryDependencies+ =“org.apache.spark”%%“spark-core”%sparkVersionwithSources(),libraryDependencies+ =“org.apache.spark”%%“spark-sql”%sparkVersionwithSources(),libraryDependencies+ =“org.apache.spark”%%“spark-hive”%sparkVersionwithSources())
在上述文件中,替换为:
2.12.14
使用您之前为这个项目选择的Scala版本。3.2.1之上
使用您之前为这个项目选择的Spark版本。dbx-demo
你的项目名称。com.example.demo
使用包的名称作为前缀。
在菜单栏上,单击查看> Tool Windows > sbt.
在sbt工具窗口,右键单击项目名称,然后单击装填sbt项目.等到<代码类="docutils literal notranslate">sbt在默认情况下完成从Internet工件存储(如Coursier或Ivy)下载项目的依赖项,这取决于您的版本<代码类="docutils literal notranslate">sbt.您可以在状态栏中查看下载进度。如果您向此项目添加或更改任何其他依赖项,则必须为您添加或更改的每组依赖项重复此项目重新加载步骤。
在菜单栏上,单击IntelliJ IDEA >首选项.
在首选项对话框中,单击构建,执行,部署>构建工具> sbt.
在JVM,因为JRE,选择您安装的OpenJDK 8 JRE。
在sbt项目,选择项目的名称。
在sbt壳中,选择构建.
点击好吧.
在菜单栏上,单击构建>构建项目.构建的结果显示在sbt壳工具窗口(查看> Tool Windows > sbt shell).
步骤4:向项目中添加代码
向项目中添加所需的代码。方法中添加代码<代码类="docutils literal notranslate">SampleApp.scala在<代码类="docutils literal notranslate">例子包中。
在项目的<代码类="docutils literal notranslate">src><代码类="docutils literal notranslate">主要><代码类="docutils literal notranslate">scala><代码类="docutils literal notranslate">SampleApp.scala文件,添加所需的代码<代码类="docutils literal notranslate">dbx在目标集群上批量运行。对于基本测试,使用本节中的示例Scala代码代码示例.
步骤5:运行项目
在菜单栏上,单击执行>编辑配置.
在运行/调试配置对话框,单击+(添加新配置)图标,或添加新,或添加新的运行配置.
在下拉菜单中,单击sbt任务.
为的名字,输入配置名称,例如:运行程序.
为任务,输入<代码类="docutils literal notranslate">~运行.
选择使用sbt shell.
点击好吧.
在菜单栏上,单击运行>运行“运行程序”.运行结果显示在sbt壳工具窗口。
步骤6:将项目构建为JAR
您可以向您的项目添加任何JAR构建设置。这一步假设您只想构建一个基于在前面步骤中设置的项目的JAR。
在菜单栏上,单击文件>项目结构.
在项目结构对话框中,单击项目设置>工件.
单击+(添加)图标。
在下拉列表中选择JAR >来自有依赖关系的模块.
在从模块创建JAR对话框中,为模块,选择项目的名称。
为主类,单击文件夹图标。
在选择主类对话,在按名称搜索选项卡上,选择一点,然后按好吧.
为库中的JAR文件中,选择复制到输出目录和链接通过清单.
点击好吧关闭从模块创建JAR对话框。
点击好吧关闭项目结构对话框。
在菜单栏上,单击构建>构建构件.
在出现的上下文菜单中,选择项目名称:jar >构建.等待<代码类="docutils literal notranslate">sbt构建JAR。构建的结果显示在构建输出工具窗口(查看> Tool Windows > Build).
JAR是针对项目构建的<代码类="docutils literal notranslate">出><代码类="docutils literal notranslate">工件><代码类="docutils literal notranslate"><项目名称> _jar文件夹中。JAR的名字是<代码类="docutils literal notranslate"><项目名称> . jar.
步骤7:在IDE中显示终端
与你的<代码类="docutils literal notranslate">dbx项目结构现在就位,您可以准备创建您的<代码类="docutils literal notranslate">dbx项目。
单击显示IntelliJ IDEA终端查看> Tool Windows > Terminal,然后继续创建dbx项目.
Eclipse
完成以下说明后开始使用Eclipse和Java<代码类="docutils literal notranslate">dbx.这些说明创建了一个最小的基于maven的Java项目,您可以使用它来启动一个<代码类="docutils literal notranslate">dbx项目。
在您的本地开发机器上,除了一般的,还必须安装以下软件需求:
Eclipse的一个版本。这些说明使用的是Eclipse IDE for Java Developers版Eclipse IDE.
Java运行时环境(JRE)或Java开发工具包(JDK) 11的版本,具体取决于本地机器的操作系统。虽然任何版本的JRE或JDK 11都可以工作,但Databricks到目前为止只验证了<代码类="docutils literal notranslate">dbx以及Eclipse 2022-03 R的Java开发人员Eclipse IDE,其中包括AdoptOpenJDK 11。
按照这些步骤开始设置你的<代码类="docutils literal notranslate">dbx项目结构:
步骤1:创建一个基于maven的Java项目
在Eclipse中,单击File >新建>项目.
在新项目对话框中,展开Maven中,选择Maven项目,并单击下一个.
在新Maven项目对话框中,选择创建一个简单的项目(跳过原型选择),并单击下一个.
为组Id,输入符合Java包名规则的组ID。这些步骤使用包名<代码类="docutils literal notranslate">com.example.demo.如果您输入了不同的组ID,请在这些步骤中替换它。
为工件Id,为JAR文件输入一个没有版本号的名称。这些步骤使用的JAR名称为<代码类="docutils literal notranslate">dbx-demo.如果您为JAR文件输入了不同的名称,那么在这些步骤中替换它。
点击完成.
步骤2:向包中添加类
您可以向包中添加任何您想要的类。这个包将包含一个名为<代码类="docutils literal notranslate">一点.
在Project Explorer视图(>显示视图>项目资源管理器),选择项目名称项目图标,然后单击File >新建>类.
在新Java类对话框中,为包,输入<代码类="docutils literal notranslate">com.example.demo.
为的名字,输入<代码类="docutils literal notranslate">一点.
为修饰符中,选择公共.
离开超类空白。
为您想创建哪些方法存根中,选择Main(String[] args).
点击完成.
步骤3:向项目添加依赖项
在Project Explorer视图中,双击项目名称> pom.xml.
属性的子元素添加以下依赖项<代码类="docutils literal notranslate"><项目>元素,然后保存文件:
< >的依赖关系< >的依赖< groupId >org.apache.spark< / groupId >< artifactId >spark-sql_2.12< / artifactId ><版本>3.2.1之上> < /版本< >范围提供< / >范围< / >的依赖< >的依赖< groupId >org.apache.spark< / groupId >< artifactId >spark-core_2.12< / artifactId ><版本>3.2.1之上> < /版本< / >的依赖< >的依赖< groupId >org.apache.spark< / groupId >< artifactId >spark-hive_2.12< / artifactId ><版本>3.2.1之上> < /版本< >范围提供< / >范围< / >的依赖< / >的依赖关系
替换:
2.12
使用目标集群的Scala版本。3.2.1之上
使用目标集群版本的Spark。
中“系统环境”一节Databricks运行时发布获取目标集群的Databricks Runtime版本。
步骤4:编译项目
在项目的<代码类="docutils literal notranslate">pom.xml文件的子元素,添加以下Maven编译器属性<代码类="docutils literal notranslate"><项目>元素,然后保存文件:
< >属性< project.build.sourceEncoding >utf - 8< / project.build.sourceEncoding >< maven.compiler.source >1.6< / maven.compiler.source >< maven.compiler.target >1.6< / maven.compiler.target >< / >属性
在Project Explorer视图,右键单击项目名称项目图标,然后单击以>身份运行配置.
在运行配置对话框中,单击Maven构建.
单击新的发射配置图标。
例如,为这个启动配置输入一个名称干净的编译.
为基地目录,点击工作空间,选择项目目录,然后单击好吧.
为目标,输入<代码类="docutils literal notranslate">清洁编译.
点击运行.运行的输出显示在控制台视图(窗口>显示视图>控制台).
步骤5:向项目中添加代码
您可以向项目中添加任何您想要的代码。此步骤假设您只想将代码添加到名为<代码类="docutils literal notranslate">的那样对于命名为<代码类="docutils literal notranslate">com.example.demo.
在项目的<代码类="docutils literal notranslate">src / main / java><代码类="docutils literal notranslate">com.example.demo><代码类="docutils literal notranslate">的那样文件,添加所需的代码<代码类="docutils literal notranslate">dbx在目标集群上批量运行。(如果手边没有任何代码,可以使用代码示例本文末尾列出了这一问题。)
步骤6:运行项目
在Project Explorer视图,右键单击项目名称项目图标,然后单击以>身份运行配置.
在运行配置对话框中,展开Java应用程序,然后按应用程序.
点击运行.运行的输出显示在控制台视图。
步骤7:将项目构建为JAR
在Project Explorer视图,右键单击项目名称项目图标,然后单击以>身份运行配置.
在运行配置对话框中,单击Maven构建.
单击新的发射配置图标。
例如,为这个启动配置输入一个名称干净的包.
为基地目录,点击工作空间,选择项目目录,然后单击好吧.
为目标,输入<代码类="docutils literal notranslate">清洁包.
点击运行.运行的输出显示在控制台视图。
JAR是为<代码类="docutils literal notranslate"><项目名称>><代码类="docutils literal notranslate">目标文件夹中。JAR的名字是<代码类="docutils literal notranslate"><项目名称> 0.0.1-snapshot.jar.
请注意
中未出现JAR<代码类="docutils literal notranslate">目标文件夹中的Project Explorer窗口,您可以尝试通过右键单击项目名称项目图标,然后单击刷新.
步骤8:在IDE中显示终端
与你的<代码类="docutils literal notranslate">dbx项目结构现在就位,您可以准备创建您的<代码类="docutils literal notranslate">dbx项目。要开始,请设置Project Explorer视图显示隐藏文件(以点(<代码类="docutils literal notranslate">./))<代码类="docutils literal notranslate">dbx生成如下所示:
在Project Explorer查看,单击省略号(视图菜单)筛选图标,然后单击过滤器和自定义.
在过滤器和自定义对话,在预设的过滤器选项卡,清除*资源。盒子。
点击好吧.
接下来,显示Eclipse终端,如下所示:
点击窗口>显示视图>终端在菜单栏上。
在终端的命令提示符不出现时,在终端查看,单击打开终端图标。
使用<代码类="docutils literal notranslate">cd命令切换到项目的根目录。
继续创建dbx项目.
无IDE(仅限终端)
完成以下说明,开始使用终端和Python with<代码类="docutils literal notranslate">dbx.
按照以下步骤使用终端开始设置您的<代码类="docutils literal notranslate">dbx项目结构:
在终端上创建一个空白文件夹。这些指令使用一个名为<代码类="docutils literal notranslate">dbx-demo(但是你可以给你的<代码类="docutils literal notranslate">dbx项目的根文件夹(任何你想要的名称)。创建文件夹后,切换到该文件夹。
Linux和macOS:
mkdir dbx-democddbx-demo
Windows:
医学博士dbx-democddbx-demo
为此项目创建Python虚拟环境<代码类="docutils literal notranslate">pipenv命令,并使用以下选项从<代码类="docutils literal notranslate">dbx-demo文件夹,<代码类="docutils literal notranslate"><版本>例如,您已经在本地安装的Python的目标版本是什么<代码类="docutils literal notranslate">3.8.14.
Pipenv——python <版本>
通过运行来激活Python虚拟环境<代码类="docutils literal notranslate">pipenv壳牌.
pipenv壳
继续创建dbx项目.
创建dbx项目
与你的<代码类="docutils literal notranslate">dbx项目结构从前面的部分之一到位,您现在准备创建以下类型的项目之一:
为Python创建最小的dbx项目
以下是最小的<代码类="docutils literal notranslate">dbxproject是开始使用Python和的最简单和最快的方法<代码类="docutils literal notranslate">dbx.它演示了在现有Databricks上批量运行单个Python代码文件通用的集群在Databricks工作区中。
请注意
要创建<代码类="docutils literal notranslate">dbxPython模板化项目,演示了在通用集群和作业集群上批量运行代码,远程代码工件部署,以及CI/CD平台设置,请跳过bob体育客户端下载创建一个支持CI/CD的dbx模板化Python项目.
要完成此过程,您的工作空间中必须有一个现有的通用集群。(见显示集群orgydF4y2Ba创建集群)。理想情况下(但不是必需的),您的Python虚拟环境中的Python版本应该与此集群上安装的Python版本匹配。要识别集群上的Python版本,请使用集群的网络终端使用实例<代码类="docutils literal notranslate">python——版本.
python的版本
从你的终端,从你的<代码类="docutils literal notranslate">dbx项目的根文件夹,运行<代码类="docutils literal notranslate">dbx配置使用以下选项命令。此命令创建一个hidden<代码类="docutils literal notranslate">.dbx文件夹内的<代码类="docutils literal notranslate">dbx项目的根文件夹。这<代码类="docutils literal notranslate">.dbx文件夹包含<代码类="docutils literal notranslate">lock.json而且<代码类="docutils literal notranslate">project.json文件。
dbx配置——配置文件默认——环境默认
请注意
的<代码类="docutils literal notranslate">project.json文件定义了一个名为<代码类="docutils literal notranslate">默认的的引用<代码类="docutils literal notranslate">默认的在你的Databricks CLI中<代码类="docutils literal notranslate">.databrickscfg文件。如果你愿意<代码类="docutils literal notranslate">dbx要使用不同的配置文件,请替换<代码类="docutils literal notranslate">——简介默认的与<代码类="docutils literal notranslate">——简介后面跟着目标配置文件的名称<代码类="docutils literal notranslate">dbx配置命令。
例如,如果您有一个名为<代码类="docutils literal notranslate">DEV在你的Databricks CLI<代码类="docutils literal notranslate">.databrickscfg文件,你想要<代码类="docutils literal notranslate">dbx用它来代替<代码类="docutils literal notranslate">默认的配置文件,你<代码类="docutils literal notranslate">project.json文件可能看起来像这样,在你的情况下,你也会替换<代码类="docutils literal notranslate">——环境默认的与<代码类="docutils literal notranslate">——环境dev在<代码类="docutils literal notranslate">dbx配置命令:
{“环境”:{“默认”:{“配置文件”:“默认”,“storage_type”:“mlflow”,“属性”:{“workspace_directory”:“/共享/ dbx /项目/ < current-folder-name >”,“artifact_location”:“dbfs: / dbx / < current-folder-name >”}},“开发”:{“配置文件”:“开发”,“storage_type”:“mlflow”,“属性”:{“workspace_directory”:“/共享/ dbx /项目/ < some-other-folder-name >”,“artifact_location”:“dbfs: / dbx / < some-other-folder-name >”}}}}
如果你愿意<代码类="docutils literal notranslate">dbx使用<代码类="docutils literal notranslate">DATABRICKS_HOST而且<代码类="docutils literal notranslate">DATABRICKS_TOKEN环境变量,而不是在你的Databricks CLI配置文件<代码类="docutils literal notranslate">.databrickscfg文件,然后省略<代码类="docutils literal notranslate">——简介选项,从<代码类="docutils literal notranslate">dbx配置命令。
创建一个名为<代码类="docutils literal notranslate">相依在你的<代码类="docutils literal notranslate">dbx项目的根文件夹。
Linux和macOS:
mkdir相依
Windows:
医学博士相依
添加一个名为<代码类="docutils literal notranslate">deployment.yaml文件到<代码类="docutils literal notranslate">相依目录,文件内容如下:
构建:no_build:真正的环境:默认的:工作流:-的名字:“dbx-demo-job”spark_python_task:python_file:“文件:/ / dbx-demo-job.py”
请注意
的<代码类="docutils literal notranslate">deployment.yaml文件中包含小写字母<代码类="docutils literal notranslate">默认的,这是对大写字母的引用<代码类="docutils literal notranslate">默认的在你的Databricks CLI中<代码类="docutils literal notranslate">.databrickscfg文件。如果你愿意<代码类="docutils literal notranslate">dbx要使用不同的配置文件,请替换<代码类="docutils literal notranslate">默认的目标配置文件的名称。
例如,如果您有一个名为<代码类="docutils literal notranslate">DEV在你的Databricks CLI<代码类="docutils literal notranslate">.databrickscfg文件,你想要<代码类="docutils literal notranslate">dbx用它来代替<代码类="docutils literal notranslate">默认的配置文件,你<代码类="docutils literal notranslate">deployment.yaml文件应该是这样的:
环境:默认的:工作流:-的名字:“dbx-demo-job”spark_python_task:python_file:“文件:/ / dbx-demo-job.py”dev:工作流:-的名字:“< some-other-job-name >”spark_python_task:python_file:“文件:/ / < some-other-filename > . py”
如果你愿意<代码类="docutils literal notranslate">dbx使用<代码类="docutils literal notranslate">DATABRICKS_HOST而且<代码类="docutils literal notranslate">DATABRICKS_TOKEN环境变量,而不是在你的Databricks CLI配置文件<代码类="docutils literal notranslate">.databrickscfg存档,然后离开<代码类="docutils literal notranslate">默认的在<代码类="docutils literal notranslate">deployment.yaml为是。<代码类="docutils literal notranslate">dbx默认情况下将使用此引用。
提示
若要将Spark配置键值对添加到作业中,请使用<代码类="docutils literal notranslate">spark_conf字段,例如:
环境:默认的:工作流:-的名字:“dbx-demo-job”spark_conf:spark.speculation:真正的spark.streaming.ui.retainedBatches:5spark.driver.extraJavaOptions:“- verbose: gc- xx: + PrintGCDetails”#……
要向作业添加权限,请使用<代码类="docutils literal notranslate">access_control_list字段,例如:
环境:默认的:工作流:-的名字:“dbx-demo-job”access_control_list:-user_name:“someone@example.com”permission_level:“IS_OWNER”-group_name:“团队”permission_level:“CAN_VIEW”#……
注意<代码类="docutils literal notranslate">access_control_list字段必须详尽无遗,因此作业的所有者应该添加到列表中,并添加其他用户和组权限。
将在集群上运行的代码添加到一个名为<代码类="docutils literal notranslate">dbx-demo-job.py并将该文件添加到您的根文件夹<代码类="docutils literal notranslate">dbx项目。(如果手边没有任何代码,可以使用代码示例本文末尾列出了这一问题。)
请注意
您不必为该文件命名<代码类="docutils literal notranslate">dbx-demo-job.py.如果选择不同的文件名,请确保更新<代码类="docutils literal notranslate">python_file在<代码类="docutils literal notranslate">conf / deployment.yaml文件匹配。
执行命令<代码类="docutils literal notranslate">dbx执行使用以下选项执行命令。在此命令中,替换<代码类="docutils literal notranslate">< existing-cluster-id >使用工作区中目标集群的ID。(要获取ID,请参见集群URL和ID)。
DBX执行——cluster-id=< exists -cluster-id> dbx-demo-job——no-package
要在本地查看运行结果,请查看终端的输出。要查看集群上的运行结果,请转到标准输出窗格中的司机日志TAB为您的集群。(见集群驱动和工作日志)。
继续下一个步骤.
为Scala或Java创建一个最小的dbx项目
以下是最小的<代码类="docutils literal notranslate">dbx项目是最简单和最快的开始方法<代码类="docutils literal notranslate">dbx以及Scala或Java。它演示了将单个Scala或Java JAR部署到Databricks工作区,然后在Databricks上运行部署的JAR集群工作在Databricks工作区中。
请注意
Databricks限制了如何在集群上运行Scala和Java代码:
您不能像使用单个Python文件那样在集群上运行单个Scala或Java文件作为作业。要运行Scala或Java代码,必须首先将其构建到JAR中。
您可以在现有的对象上运行JAR作为作业通用的集群.但是,您不能在同一个通用集群上重新安装该JAR的任何更新。在这种情况下,您必须使用作业集群。本节使用作业集群方法。
您必须首先将JAR部署到Databricks工作空间,然后才能在该工作空间中的任何通用集群或作业集群上运行已部署的JAR。
在终端中,从项目的根文件夹中运行<代码类="docutils literal notranslate">dbx配置使用以下选项命令。此命令创建一个hidden<代码类="docutils literal notranslate">.dbx项目根文件夹中的文件夹。这<代码类="docutils literal notranslate">.dbx文件夹包含<代码类="docutils literal notranslate">lock.json而且<代码类="docutils literal notranslate">project.json文件。
dbx配置——配置文件默认——环境默认
请注意
的<代码类="docutils literal notranslate">project.json文件定义了一个名为<代码类="docutils literal notranslate">默认的的引用<代码类="docutils literal notranslate">默认的在你的Databricks CLI中<代码类="docutils literal notranslate">.databrickscfg文件。如果你愿意<代码类="docutils literal notranslate">dbx要使用不同的配置文件,请替换<代码类="docutils literal notranslate">——简介默认的与<代码类="docutils literal notranslate">——简介后面跟着目标配置文件的名称<代码类="docutils literal notranslate">dbx配置命令。
例如,如果您有一个名为<代码类="docutils literal notranslate">DEV在你的Databricks CLI<代码类="docutils literal notranslate">.databrickscfg文件,你想要<代码类="docutils literal notranslate">dbx用它来代替<代码类="docutils literal notranslate">默认的配置文件,你<代码类="docutils literal notranslate">project.json文件可能看起来像这样,在你的情况下,你也会替换<代码类="docutils literal notranslate">——环境默认的与<代码类="docutils literal notranslate">——环境dev在<代码类="docutils literal notranslate">dbx配置命令:
{“环境”:{“默认”:{“配置文件”:“默认”,“storage_type”:“mlflow”,“属性”:{“workspace_directory”:“/共享/ dbx /项目/ < current-folder-name >”,“artifact_location”:“dbfs: / dbx / < current-folder-name >”}},“开发”:{“配置文件”:“开发”,“storage_type”:“mlflow”,“属性”:{“workspace_directory”:“/共享/ dbx /项目/ < some-other-folder-name >”,“artifact_location”:“dbfs: / dbx / < some-other-folder-name >”}}}}
如果你愿意<代码类="docutils literal notranslate">dbx使用<代码类="docutils literal notranslate">DATABRICKS_HOST而且<代码类="docutils literal notranslate">DATABRICKS_TOKEN环境变量,而不是在你的Databricks CLI配置文件<代码类="docutils literal notranslate">.databrickscfg文件,然后省略<代码类="docutils literal notranslate">——简介选项,从<代码类="docutils literal notranslate">dbx配置命令。
创建一个名为<代码类="docutils literal notranslate">相依在项目的根文件夹中。
Linux和macOS:
mkdir相依
Windows:
医学博士相依
添加一个名为<代码类="docutils literal notranslate">deployment.yaml文件到<代码类="docutils literal notranslate">相依目录,包含以下最小文件内容:
构建:no_build:真正的环境:默认的:工作流:-的名字:“dbx-demo-job”new_cluster:spark_version:“10.4.x-scala2.12”node_type_id:“i3.xlarge”aws_attributes:first_on_demand:1可用性:“现货”num_workers:2instance_pool_id:“my-instance-pool”库:-jar:“文件:/ / /工件/ dbx_demo_jar / dbx-demo.jar”spark_jar_task:main_class_name:“com.example.demo.SampleApp”
替换:
的价值<代码类="docutils literal notranslate">spark_version用合适的运行时版本字符串用于目标作业集群。
的价值<代码类="docutils literal notranslate">node_type_id用合适的集群节点类型用于目标作业集群。
的价值<代码类="docutils literal notranslate">instance_pool_id使用现有实例的ID池在您的工作空间中,以支持更快地运行作业。如果没有可用的现有实例池,或者不想使用实例池,请完全删除这一行。
的价值<代码类="docutils literal notranslate">jar使用项目中到JAR的路径。对于IntelliJ IDEA和Scala,可能是这样<代码类="docutils literal notranslate">file://out/artifacts/dbx_demo_jar/dbx-demo.jar.对于带有Java的Eclipse IDE,可能是这样<代码类="docutils literal notranslate">file://target/dbx-demo-0.0.1-SNAPSHOT.jar.
的价值<代码类="docutils literal notranslate">main_class_name例如,JAR中的主类名<代码类="docutils literal notranslate">com.example.demo.SampleApp.
请注意
的<代码类="docutils literal notranslate">deployment.yaml文件包含字<代码类="docutils literal notranslate">默认的的引用<代码类="docutils literal notranslate">默认的环境<代码类="docutils literal notranslate">.dbx / project.json文件,该文件又是对<代码类="docutils literal notranslate">默认的在你的Databricks CLI中<代码类="docutils literal notranslate">.databrickscfg文件。如果你愿意<代码类="docutils literal notranslate">dbx要使用不同的配置文件,请替换<代码类="docutils literal notranslate">默认的在这个<代码类="docutils literal notranslate">deployment.yaml文件中对应的引用<代码类="docutils literal notranslate">.dbx / project.json该文件在Databricks CLI中引用相应的配置文件<代码类="docutils literal notranslate">.databrickscfg文件。
例如,如果您有一个名为<代码类="docutils literal notranslate">DEV在你的Databricks CLI<代码类="docutils literal notranslate">.databrickscfg文件,你想要<代码类="docutils literal notranslate">dbx用它来代替<代码类="docutils literal notranslate">默认的配置文件,你<代码类="docutils literal notranslate">deployment.yaml文件应该是这样的:
环境:默认的:工作流:-的名字:“dbx-demo-job”#……dev:工作流:-的名字:“< some-other-job-name >”#……
如果你愿意<代码类="docutils literal notranslate">dbx使用<代码类="docutils literal notranslate">DATABRICKS_HOST而且<代码类="docutils literal notranslate">DATABRICKS_TOKEN环境变量,而不是在你的Databricks CLI配置文件<代码类="docutils literal notranslate">.databrickscfg存档,然后离开<代码类="docutils literal notranslate">默认的在<代码类="docutils literal notranslate">deployment.yaml为是。<代码类="docutils literal notranslate">dbx将使用<代码类="docutils literal notranslate">默认的环境设置(除了<代码类="docutils literal notranslate">配置文件值)<代码类="docutils literal notranslate">.dbx / project.json默认文件。
提示
若要将Spark配置键值对添加到作业中,请使用<代码类="docutils literal notranslate">spark_conf字段,例如:
环境:默认的:工作流:-的名字:“dbx-demo-job”spark_conf:spark.speculation:真正的spark.streaming.ui.retainedBatches:5spark.driver.extraJavaOptions:“- verbose: gc- xx: + PrintGCDetails”#……
要向作业添加权限,请使用<代码类="docutils literal notranslate">access_control_list字段,例如:
环境:默认的:工作流:-的名字:“dbx-demo-job”access_control_list:-user_name:“someone@example.com”permission_level:“IS_OWNER”-group_name:“团队”permission_level:“CAN_VIEW”#……
注意<代码类="docutils literal notranslate">access_control_list字段必须详尽无遗,因此作业的所有者应该添加到列表中,并添加其他用户和组权限。
运行<代码类="docutils literal notranslate">dbx部署命令。<代码类="docutils literal notranslate">dbx的位置上部署JAR<代码类="docutils literal notranslate">.dbx / project.json文件的<代码类="docutils literal notranslate">artifact_location匹配环境的路径。<代码类="docutils literal notranslate">dbx还将项目的文件部署为MLflow实验中列出的位置<代码类="docutils literal notranslate">.dbx / project.json文件的<代码类="docutils literal notranslate">workspace_directory匹配环境的路径。
DBX部署——无包
运行<代码类="docutils literal notranslate">dbx发射使用以下选项执行命令。该命令运行中名称匹配的作业<代码类="docutils literal notranslate">conf / deployment.yaml.要找到部署的JAR以作为作业的一部分运行,<代码类="docutils literal notranslate">dbx控件中的位置<代码类="docutils literal notranslate">.dbx / project.json文件的<代码类="docutils literal notranslate">artifact_location匹配环境的路径。要确定要运行哪个特定的JAR,<代码类="docutils literal notranslate">dbx中所列位置的MLflow实验<代码类="docutils literal notranslate">.dbx / project.json文件的<代码类="docutils literal notranslate">workspace_directory匹配环境的路径。
启动DBX -demo-job
要查看作业集群上作业运行的结果,请参见视图的工作.
要查看该作业引用的实验,请参见组织MLflow实验训练.
继续下一个步骤.
创建一个支持CI/CD的dbx模板化Python项目
以下<代码类="docutils literal notranslate">dbxtemplated project for Python演示了支持在Databricks上批量运行Python代码通用的集群而且工作的集群在你的Databricks工作空间,远程代码工件部署,以及CI/CD平台设置。bob体育客户端下载(创建一个最小的<代码类="docutils literal notranslate">dbx仅演示在现有通用集群上批量运行单个Python代码文件的Python项目,请跳回为Python创建最小的dbx项目)。
从你的终端,在你的<代码类="docutils literal notranslate">dbx项目的根文件夹,运行<代码类="docutils literal notranslate">dbx初始化命令。
dbx init
为project_name,输入项目名称,或按enter接受默认项目名称。
为版本,输入项目的起始版本号,或按enter接受默认项目版本。
为云,选择您希望项目使用的Databricks云版本对应的数字,或按Enter接受默认值。
为cicd_tool,选择您希望项目使用的受支持的CI/CD工具对应的数字,或按Enter接受默认值。
为project_slug,输入要用于项目中的资源的前缀,或按enter接受默认值。
为workspace_directory,输入项目工作空间目录的本地路径,或按enter接受默认路径。
为artifact_location,在Databricks工作空间中输入项目工件将被写入的路径,或按enter接受默认值。
为配置文件,输入项目要使用的Databricks CLI身份验证配置文件的名称,或按enter键接受默认配置文件。
提示
您可以通过运行,跳过以上步骤<代码类="docutils literal notranslate">dbx初始化使用硬编码的模板参数,例如:
DBX初始化模板=“python_basic”\- p“project_name = cicd-sample-project”\- p“云= AWS”\- p“cicd_tool = GitHub行动”\- p“配置文件=违约”\——没有输入
dbx
计算参数<代码类="docutils literal notranslate">project_slug,<代码类="docutils literal notranslate">workspace_directory,<代码类="docutils literal notranslate">artifact_location自动。这三个参数是可选的,它们只对更高级的用例有用。
看到<代码类="docutils literal notranslate">初始化命令在CLI参考在<代码类="docutils literal notranslate">dbx文档。
另请参阅下一个步骤.
代码示例
如果没有任何可用于批处理运行的代码<代码类="docutils literal notranslate">dbx,你可以尝试<代码类="docutils literal notranslate">dbx批量运行以下代码。这段代码在工作区中创建一个小表,查询该表,然后删除该表。
提示
如果希望将表保留在工作空间中而不是删除它,请在批量运行此示例中的最后一行代码之前注释掉它<代码类="docutils literal notranslate">dbx.
#对于本地对象的测试和调试,运行# "pip install pyspark=X.Y.Z",即"X.Y.Z"#匹配PySpark的版本#在目标集群上。从pyspark.sql进口SparkSession从pyspark.sql.types进口*从datetime进口日期火花=SparkSession.构建器.浏览器名称(“dbx-demo”).getOrCreate()#创建一个由高温和低温组成的数据帧#按机场代码和日期。模式=StructType([StructField(“AirportCode”,StringType(),假),StructField(“日期”,DateType(),假),StructField(“TempHighF”,IntegerType(),假),StructField(“TempLowF”,IntegerType(),假)])数据=[[“BLI”,日期(2021,4,3.),52,43),[“BLI”,日期(2021,4,2),50,38),[“BLI”,日期(2021,4,1),52,41),[“PDX”,日期(2021,4,3.),64,45),[“PDX”,日期(2021,4,2),61,41),[“PDX”,日期(2021,4,1),66,39),[“海”,日期(2021,4,3.),57,43),[“海”,日期(2021,4,2),54,39),[“海”,日期(2021,4,1),56,41]]临时工=火花.createDataFrame(数据,模式)在集群上创建一个表,然后填充# DataFrame的内容。#如果表在之前的运行中已经存在,#先删除它。火花.sql(使用默认的)火花.sql(删除表如果存在demo_temps_table)临时工.写.saveAsTable(“demo_temps_table”)查询集群上的表,返回行#,其中机场代码不是BLI,日期是稍后#比2021-04-01。将结果分组,按高排序#温度由高到低。df_temps=火花.sql(SELECT * FROM demo_temps_table\“WHERE AirportCode != 'BLI' AND Date > '2021-04-01'”\GROUP BY AirportCode, Date, TempHighF, TempLowF\“TempHighF DESC订单”)df_temps.显示()#结果:## +-----------+----------+---------+--------+# |AirportCode| Date|TempHighF|TempLowF|# +-----------+----------+---------+--------+# | pdx |2021-04-03| 64| 45|# | pdx |2021-04-02| 61| 41|# |海|2021-04-03| 57| 43|# |海|2021-04-02| 54| 39|# +-----------+----------+---------+--------+通过从集群中删除表来清理火花.sql(DROP TABLE demo_temps_table)
包com.例子.演示进口org.apache.火花.sql.SparkSession进口org.apache.火花.sql.类型._进口org.apache.火花.sql.行进口java.sql.日期对象一点{def主要(arg游戏:数组[字符串]){瓦尔火花=SparkSession.构建器().主(“本地”).getOrCreate()瓦尔模式=StructType(数组(StructField(“AirportCode”,StringType,假),StructField(“日期”,DateType,假),StructField(“TempHighF”,IntegerType,假),StructField(“TempLowF”,IntegerType,假)))瓦尔数据=列表(行(“BLI”,日期.返回对象的值(“2021-04-03”),52,43),行(“BLI”,日期.返回对象的值(“2021-04-02”),50,38),行(“BLI”,日期.返回对象的值(“2021-04-01”),52,41),行(“PDX”,日期.返回对象的值(“2021-04-03”),64,45),行(“PDX”,日期.返回对象的值(“2021-04-02”),61,41),行(“PDX”,日期.返回对象的值(“2021-04-01”),66,39),行(“海”,日期.返回对象的值(“2021-04-03”),57,43),行(“海”,日期.返回对象的值(“2021-04-02”),54,39),行(“海”,日期.返回对象的值(“2021-04-01”),56,41))瓦尔抽样=火花.sparkContext.makeRDD(数据)瓦尔临时工=火花.createDataFrame(抽样,模式)//在Databricks集群上创建一个表,然后填充//包含DataFrame内容的表//如果表在之前运行时已经存在,//先删除它。火花.sql(“使用默认”)火花.sql(DROP TABLE IF EXISTS demo_temps_table)临时工.写.saveAsTable(“demo_temps_table”)//查询Databricks集群上的表,返回行//如果机场代码不是BLI,日期是晚些//比2021-04-01。将结果分组,按高排序//温度由高到低。瓦尔df_temps=火花.sql(SELECT * FROM demo_temps_table+“WHERE AirportCode != 'BLI' AND Date > '2021-04-01'”+GROUP BY AirportCode, Date, TempHighF, TempLowF+“TempHighF DESC订单”)df_temps.显示()/ /结果://// +-----------+----------+---------+--------+// |AirportCode| Date|TempHighF|TempLowF| .使用实例// +-----------+----------+---------+--------+// | pdx |2021-04-03| 64| 45| .使用实例// | pdx |2021-04-02| 61| 41| .使用实例// | sea |2021-04-03| 57| 43|// | sea |2021-04-02| 54| 39|// +-----------+----------+---------+--------+//删除Databricks集群中的表火花.sql(DROP TABLE demo_temps_table)}}
包com.example.demo;进口java.util.ArrayList;进口并不知道;进口java.sql.Date;进口org.apache.spark.sql.SparkSession;进口org.apache.spark.sql.types。*;进口org.apache.spark.sql.Row;进口org.apache.spark.sql.RowFactory;进口org.apache.spark.sql.Dataset;公共类一点{公共静态无效主要(字符串[]arg游戏){SparkSession火花=SparkSession.构建器().浏览器名称(“临时工演示”).配置(“spark.master”,“本地”).getOrCreate();//创建一个由高温和低温组成的Spark DataFrame//通过机场代码和日期。StructType模式=新StructType(新StructField[]{新StructField(“AirportCode”,数据类型.StringType,假,元数据.空()),新StructField(“日期”,数据类型.DateType,假,元数据.空()),新StructField(“TempHighF”,数据类型.IntegerType,假,元数据.空()),新StructField(“TempLowF”,数据类型.IntegerType,假,元数据.空()),});列表<行>dataList=新ArrayList<行>();dataList.添加(RowFactory.创建(“BLI”,日期.返回对象的值(“2021-04-03”),52,43));dataList.添加(RowFactory.创建(“BLI”,日期.返回对象的值(“2021-04-02”),50,38));dataList.添加(RowFactory.创建(“BLI”,日期.返回对象的值(“2021-04-01”),52,41));dataList.添加(RowFactory.创建(“PDX”,日期.返回对象的值(“2021-04-03”),64,45));dataList.添加(RowFactory.创建(“PDX”,日期.返回对象的值(“2021-04-02”),61,41));dataList.添加(RowFactory.创建(“PDX”,日期.返回对象的值(“2021-04-01”),66,39));dataList.添加(RowFactory.创建(“海”,日期.返回对象的值(“2021-04-03”),57,43));dataList.添加(RowFactory.创建(“海”,日期.返回对象的值(“2021-04-02”),54,39));dataList.添加(RowFactory.创建(“海”,日期.返回对象的值(“2021-04-01”),56,41));数据集<行>临时工=火花.createDataFrame(dataList,模式);//在Databricks集群上创建一个表,然后填充//包含DataFrame内容的表//如果表在之前运行时已经存在,//先删除它。火花.sql(“使用默认”);火花.sql(DROP TABLE IF EXISTS demo_temps_table);临时工.写().saveAsTable(“demo_temps_table”);//查询Databricks集群上的表,返回行//如果机场代码不是BLI,日期是晚些//比2021-04-01。将结果分组,按高排序//温度由高到低。数据集<行>df_temps=火花.sql(SELECT * FROM demo_temps_table+“WHERE AirportCode != 'BLI' AND Date > '2021-04-01'”+GROUP BY AirportCode, Date, TempHighF, TempLowF+“TempHighF DESC订单”);df_temps.显示();/ /结果://// +-----------+----------+---------+--------+// |AirportCode| Date|TempHighF|TempLowF| .使用实例// +-----------+----------+---------+--------+// | pdx |2021-04-03| 64| 45| .使用实例// | pdx |2021-04-02| 61| 41| .使用实例// | sea |2021-04-03| 57| 43|// | sea |2021-04-02| 54| 39|// +-----------+----------+---------+--------+//删除Databricks集群中的表火花.sql(DROP TABLE demo_temps_table);}}
下一个步骤
扩展conf/deployment。yaml文件支持各种类型的通用和作业集群定义。
声明多任务作业在你的<代码类="docutils literal notranslate">conf / deployment.yaml文件。
参考命名属性在你的<代码类="docutils literal notranslate">conf / deployment.yaml文件。
属性在集群上作为新作业批量运行代码dbx执行命令。
额外的资源
将代码工件批量部署到Databricks工作区存储dbx部署命令。
方法在集群上批量运行现有作业dbx发射命令。
BOB低频彩了解更多dbx和CI/CD.
databrickslabs / dbxGitHub上的存储库