dbx的砖实验室
提示
的砖扩展Visual Studio代码提供了一种替代方法使用<代码类="docutils literal notranslate">dbx。然而,砖扩展Visual Studio代码是在公共预览,它尚未提供一些<代码类="docutils literal notranslate">dbx特性,比如定义多个部署环境和多个部署工作流,以及提供CI / CD项目模板。
请注意
本文将介绍<代码类="docutils literal notranslate">dbx砖实验室,是按原样提供,不支持通过客户技术支持渠道砖。问题和特性请求可以通过沟通问题页面的databrickslabs / dbx在GitHub回购。
dbx由砖实验室是一个开放源码工具旨在扩展遗留数据砖命令bob下载地址行接口(砖CLI),并提供功能快速开发生命周期和持续集成和持续交付/部署(CI / CD)砖平台。bob体育客户端下载
dbx
简化了工作跨多个环境启动和部署过程。它也有助于包您的项目并交付给你的砖环境版本化的方式。CLI-first方式而设计的,它是建立内部积极使用CI / CD作为当地的一部分管道和工具(如当地的ide,包括Visual Studio代码和PyCharm)。
典型的开发流程<代码类="docutils literal notranslate">dbx是:
创建一个远程存储库Git提供者砖支持的,如果你没有一个远程回购已经可用。
克隆远程回购到砖工作区中。
创建或砖笔记本进入你砖的克隆回购工作区。用这个笔记本开始原型代码,你希望你的砖集群来运行。
加强和模块化笔记本代码通过添加单独的助手类和函数,配置文件,和测试中,切换到使用本地开发机器<代码类="docutils literal notranslate">dbx你喜欢的IDE, Git安装。
当地开发机器克隆你的远程回购。
代码从你的笔记本进入一个或多个本地代码文件。
本地代码时,将你的工作从你当地的回购远程回购。同时,同步你的远程回购砖工作区。
提示
或者,您可以使用dbx同步自动同步本地文件的更改与相应的文件在您的工作空间中,在真正的时间。
继续使用笔记本在你为快速成型砖工作区,并继续验证代码从你的笔记本到您的本地机器上。继续使用您的本地IDE等任务的代码模块化,代码完成、产品毛羽,代码的单元测试,分步调试和对象,不需要现场连接数据砖。
使用<代码类="docutils literal notranslate">dbx批处理运行您的本地代码在你的目标集群,。(这类似于运行spark-submit脚本在火花的<代码类="docutils literal notranslate">本目录启动火花集群上的应用程序)。
当你准备生产,使用CI / CD平台等bob体育客户端下载GitHub的行为,Azure DevOps,或GitLab自动化运行远程回购的代码在您的集群。
需求
使用<代码类="docutils literal notranslate">dbx,你必须安装以下本地开发机器上,不管你的代码使用Python, Scala,或Java:
Python版本3.8或更高版本。
如果你的代码使用Python,你应该使用一个匹配的版本的Python安装在你的目标集群。Python的版本,安装在现有的集群中,您可以使用集群网络终端运行<代码类="docutils literal notranslate">python——版本命令。看到的“系统环境”一节砖的运行时版本砖的运行时版本为目标集群。
皮普。
如果你的代码使用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安装dbx——dbx升级版本
的砖CLI或低于0.17版本,设置身份验证。遗留数据砖CLI(砖CLI的0.17版)是自动安装时安装<代码类="docutils literal notranslate">dbx。这种身份验证可以设置本地开发机器上的一个或两个以下位置:
在<代码类="docutils literal notranslate">DATABRICKS_HOST和<代码类="docutils literal notranslate">DATABRICKS_TOKEN环境变量(与遗留数据砖CLI 0.8.0版开始)。
在一个砖配置概要文件在你的<代码类="docutils literal notranslate">.databrickscfg文件。
dbx
分别在这两个位置查找身份验证凭证。<代码类="docutils literal notranslate">dbx只使用它找到的第一组匹配的凭证。请注意
dbx
不支持使用吗. netrc申请认证,开始与遗留0.17.2砖CLI的版本。检查您的遗留数据砖CLI安装版本,运行命令<代码类="docutils literal notranslate">砖——版本。git推动和同步本地和远程代码更改。
继续说明下列ide之一:
请注意
砖已经验证前面的ide的使用<代码类="docutils literal notranslate">dbx;然而,<代码类="docutils literal notranslate">dbx应该适用于任何IDE。您还可以使用仅没有IDE(终端)。
dbx
优化与列纵队Python代码文件和编译Scala和Java JAR文件。<代码类="docutils literal notranslate">dbx不使用一列纵队R代码文件或编译代码包。这是因为<代码类="docutils literal notranslate">dbx与就业的API2.0和2.1,这些api不能运行排成一列纵队R代码文件或编译代码包工作。
Visual Studio代码
完成以下指令开始使用Visual Studio代码与Python<代码类="docutils literal notranslate">dbx。
本地开发机器上,您必须安装以下除了将军需求:
的Python扩展Visual Studio代码。有关更多信息,请参见扩展市场在Visual Studio代码的网站。
有关更多信息,请参见开始使用Python在VS代码在Visual Studio代码文档。
遵循以下步骤开始设置<代码类="docutils literal notranslate">dbx项目结构:
从您的终端,创建一个空白的文件夹中。这些指令使用文件夹命名<代码类="docutils literal notranslate">dbx-demo。你可以给你的<代码类="docutils literal notranslate">dbx项目的根文件夹任何你想要的名字。如果你使用一个不同的名称,取代这个名字在这些步骤。创建的文件夹后,切换到它,然后开始Visual Studio代码从文件夹中。
对于Linux和macOS:
mkdir dbx-democddbx-demo代码。
提示
如果<代码类="docutils literal notranslate">命令不发现:代码显示在您运行<代码类="docutils literal notranslate">代码。,请参阅从命令行启动在微软的网站。
Windows:
医学博士dbx-democddbx-demo代码。
Python在Visual Studio代码中,创建一个虚拟环境为这个项目:
在菜单栏,点击视图>终端。
的根源<代码类="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">终端:创建,然后单击终端:创建新的终端。
有关更多信息,请参见使用Python环境VS代码在Visual Studio代码文档。
继续创建一个dbx项目。
PyCharm
完成以下指令开始使用PyCharm与Python<代码类="docutils literal notranslate">dbx。
遵循以下步骤开始设置<代码类="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项目,然后选择创建一个主。py脚本欢迎盒子。否则,这个盒子。
点击创建。
在项目工具窗口中,用鼠标右键单击项目的根文件夹,然后单击打开在>终端。
继续创建一个dbx项目。
IntelliJ IDEA
完成以下指令开始使用IntelliJ IDEAScala和<代码类="docutils literal notranslate">dbx。这些指令创建一个最小sbt-based Scala项目,您可以使用开始<代码类="docutils literal notranslate">dbx项目。
本地开发机器上,您必须安装以下除了将军需求:
的ScalaIntelliJ IDEA的插件。有关更多信息,请参见发现Scala IntelliJ IDEAIntelliJ IDEA的文档。
Java运行时环境(JRE) 8。在任何版本的JRE 8应该工作,砖迄今为止只使用进行验证<代码类="docutils literal notranslate">dbx和IntelliJ IDEA OpenJDK 8 JRE。砖尚未验证的使用<代码类="docutils literal notranslate">dbxIntelliJ IDEA和Java 11。有关更多信息,请参见Java开发工具包(JDK)IntelliJ IDEA的文档。
遵循以下步骤开始设置<代码类="docutils literal notranslate">dbx项目结构:
步骤1:创建一个sbt-based Scala项目
在IntelliJ IDEA,取决于你的视图,单击项目>新项目orgydF4y2BaFile > New >项目。
在新项目对话框中,单击Scala,点击sbt,然后单击下一个。
输入项目名称和项目的位置。
为JDK,选择安装的OpenJDK 8 JRE。
为sbt,选择的最高可用版本<代码类="docutils literal notranslate">sbt这是上市。
为Scala,在理想的情况下,选择的Scala版本相匹配你的目标集群的Scala版本。看到的“系统环境”一节砖的运行时版本砖的运行时版本为目标集群。
旁边Scala,选择来源箱子如果尚未选中。
添加一个前缀包前缀。这些步骤使用包前缀<代码类="docutils literal notranslate">com.example.demo。如果你指定一个不同的包前缀,取代包前缀在这些步骤。
点击完成。
步骤2:将对象添加到包中
你可以添加任何所需的对象包中。这个包包含一个对象命名<代码类="docutils literal notranslate">一点。
在项目工具窗口(项目视图>工具窗口>),右键单击项目名称主要> src > > 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之上
与之前版本的火花,你选择了这个项目。dbx-demo
与您的项目的名称。com.example.demo
与您的软件包的名称前缀。
在菜单栏,点击窗口视图>工具> sbt。
在sbt工具窗口中,右键单击您的项目的名称,然后单击重载sbt项目。等到<代码类="docutils literal notranslate">sbt完成从互联网下载项目的依赖关系工件存储如Coursier或常春藤在默认情况下,这取决于你的版本<代码类="docutils literal notranslate">sbt。你可以看状态栏的下载进度。如果您添加或更改任何更多的依赖这个项目,您必须为每组重复这个项目重新加载步骤的依赖关系添加或更改。
在菜单栏,点击IntelliJ IDEA >首选项。
在首选项对话框中,单击构建、执行部署> > sbt的构建工具。
在JVM,因为JRE,选择安装的OpenJDK 8 JRE。
在sbt项目中,选择您的项目的名称。
在sbt壳中,选择构建。
点击好吧。
在菜单栏,点击构建>构建项目。构建的结果中出现sbt壳工具窗口(窗口视图>工具> sbt壳)。
步骤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代码示例的部分代码示例。
第五步:运行项目
在菜单栏,点击Run >编辑配置。
在运行/调试配置对话框中,单击+(添加新配置)图标,或添加新,或添加新的运行配置。
在下拉列表中,点击sbt任务。
为的名字配置,输入一个名称,例如,运行这个程序。
为任务,输入<代码类="docutils literal notranslate">~运行。
选择使用sbt壳。
点击好吧。
在菜单栏,点击>跑“运行程序”。出现在运行的结果sbt壳工具窗口。
第六步:构建项目作为一个JAR
您可以添加任何JAR构建设置您的项目,你想要的。这个步骤假设您只希望构建一个JAR,基于项目成立于前面的步骤。
在菜单栏,点击文件>项目结构。
在项目结构对话框中,单击项目设置>工件。
单击+(添加)图标。
在下拉列表中,选择JAR >从模块依赖关系。
在从模块创建JAR对话框中,为模块中,选择您的项目的名称。
为主类,单击文件夹图标。
在选择主类对话框,按名称搜索选项卡上,选择一点,然后单击好吧。
为从库JAR文件中,选择通过清单复制到输出目录和链接。
点击好吧关闭从模块创建JAR对话框。
点击好吧关闭项目结构对话框。
在菜单栏,点击构建>构建工件。
在出现的上下文菜单中,选择项目名称:jar >构建。等待<代码类="docutils literal notranslate">sbt构建你的罐子。构建的结果中出现构建输出工具窗口(窗口视图>工具>构建)。
JAR是项目的建立<代码类="docutils literal notranslate">出><代码类="docutils literal notranslate">工件><代码类="docutils literal notranslate"><项目名称> _jar文件夹中。JAR的名字<代码类="docutils literal notranslate"><项目名称> . jar。
第七步:显示终端在IDE中
与你的<代码类="docutils literal notranslate">dbx现在项目结构,你可以创建<代码类="docutils literal notranslate">dbx项目。
通过点击显示IntelliJ IDEA的终端视图>工具窗口>终端的菜单栏,然后继续创建一个dbx项目。
Eclipse
完成以下指令开始使用Eclipse和Java<代码类="docutils literal notranslate">dbx。这些指令创建一个最小Maven-based Java项目,您可以使用开始<代码类="docutils literal notranslate">dbx项目。
本地开发机器上,您必须安装以下除了将军需求:
Eclipse的一个版本。这些指令使用Eclipse IDE的Java开发人员版Eclipse IDE。
一个版的Java运行时环境(JRE)或Java开发工具包(JDK) 11日,根据您的本地机器上的操作系统。在任何版本的JRE或JDK 11应该工作,砖迄今为止只使用进行验证<代码类="docutils literal notranslate">dbx和Java开发人员的Eclipse IDE Eclipse 2022 - 03年R,其中包括AdoptOpenJDK 11。
遵循以下步骤开始设置<代码类="docutils literal notranslate">dbx项目结构:
步骤1:创建一个Maven-based Java项目
在Eclipse中,点击File > New >项目。
在新项目对话框中,展开Maven中,选择Maven项目,然后单击下一个。
在新的Maven项目对话框中,选择创建一个简单项目(跳过原型选择),然后单击下一个。
为组Id,输入一组ID,符合Java包名称的规则。这些步骤使用的包名称<代码类="docutils literal notranslate">com.example.demo。如果你进入一个不同的组ID,替代它在这些步骤。
为工件IdJAR文件,输入一个名称,没有版本号。这些步骤使用的JAR名称<代码类="docutils literal notranslate">dbx-demo。如果你为JAR文件,输入一个不同的名称替代它在这些步骤。
点击完成。
步骤2:将一个类添加到包中
您可以添加任何你想要的类包。这个包将包含一个类命名<代码类="docutils literal notranslate">一点。
在Project Explorer视图(Window > Show View > Project Explorer),选择项目名称项目图标,然后单击File > New > Class。
在新的Java类对话框中,为包,输入<代码类="docutils literal notranslate">com.example.demo。
为的名字,输入<代码类="docutils literal notranslate">一点。
为修饰符中,选择公共。
离开超类空白。
为哪个方法存根创建吗中,选择公共静态void 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之上
与你的目标集群的版本的火花。
看到的“系统环境”一节砖的运行时版本砖的运行时版本为目标集群。
第四步:编译项目
在项目的<代码类="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视图中,右键单击项目名称项目图标,然后单击Run As > Run配置。
在运行配置对话框中,单击Maven构建。
单击新的启动配置图标。
为这个启动配置输入一个名称,例如干净的编译。
为基地目录,点击工作空间选择您的项目目录,然后单击好吧。
为目标,输入<代码类="docutils literal notranslate">清洁编译。
点击运行。运行的输出出现在控制台视图(Window > Show View >控制台)。
第五步:将代码添加到项目中
你可以添加你想要的任何代码到您的项目。这个步骤假设您只需要将代码添加到文件命名<代码类="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批处理运行在你的目标集群。(如果你没有任何代码方便,您可以使用Java代码代码示例本文的末尾列出。)
第六步:运行项目
在Project Explorer视图中,右键单击项目名称项目图标,然后单击Run As > Run配置。
在运行配置对话框中,展开Java应用程序,然后单击应用程序。
点击运行。运行的输出出现在控制台视图。
第七步:构建项目作为一个JAR
在Project Explorer视图中,右键单击项目名称项目图标,然后单击Run As > Run配置。
在运行配置对话框中,单击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窗口,你可以尝试通过右击显示它项目名称项目图标,然后单击刷新。
第八步:显示终端在IDE中
与你的<代码类="docutils literal notranslate">dbx现在项目结构,你可以创建<代码类="docutils literal notranslate">dbx项目。首先,设置Project Explorer视图显示隐藏文件(文件从一个点开始(<代码类="docutils literal notranslate">。/))<代码类="docutils literal notranslate">dbx生成,如下所示:
在Project Explorer视图中,单击省略号(视图菜单)过滤器图标,然后单击过滤器和定制。
在过滤器和定制对话框,预设的过滤器选项卡上,清晰的*资源。盒子。
点击好吧。
接下来,Eclipse终端显示如下:
点击Window > Show View >终端在菜单栏上。
在终端的命令提示符没有出现,终端视图中,单击打开一个终端图标。
使用<代码类="docutils literal notranslate">cd命令来切换到您的项目的根目录。
继续创建一个dbx项目。
仅没有IDE(终端)
完成以下指令开始使用一个终端和Python<代码类="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项目结构从一个前面的,现在可以创建下列类型的项目之一:
创建一个最小的dbx Python项目
以下最小<代码类="docutils literal notranslate">dbx项目是最简单和最快的方式开始使用Python和<代码类="docutils literal notranslate">dbx。它演示了一个Python代码文件的批处理运行现有的砖通用的集群在你的砖工作区。
请注意
创建一个<代码类="docutils literal notranslate">dbx模板化项目演示了批处理运行的Python代码的通用集群和集群工作,远程代码工件部署,和CI / CD平台设置,跳到bob体育客户端下载创建一个dbx模板化项目与CI / CD支持Python。
要完成这个过程,您必须有一个现有的通用集群在工作区中。(见显示集群orgydF4y2Ba创建一个集群)。理想情况下(但不是必需的),在您的Python版本的Python虚拟环境应与此集群上安装的版本。识别在集群上的Python版本,使用集群的网络终端运行命令<代码类="docutils literal notranslate">python——版本。
python的版本
从您的终端,从你<代码类="docutils literal notranslate">dbx项目的根文件夹,运行<代码类="docutils literal notranslate">dbx配置命令使用以下选项。这个命令创建一个隐藏的<代码类="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">默认的概要文件在你的<代码类="docutils literal notranslate">.databrickscfg文件。如果你想要<代码类="docutils literal notranslate">dbx使用不同的配置文件,替换<代码类="docutils literal notranslate">——简介默认的与<代码类="docutils literal notranslate">——简介其次是你目标概要文件的名字,<代码类="docutils literal notranslate">dbx配置命令。
例如,如果你有一个概要文件命名<代码类="docutils literal notranslate">DEV在你的<代码类="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环境变量而不是一个概要文件在你<代码类="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">默认的概要文件在你的<代码类="docutils literal notranslate">.databrickscfg文件。如果你想要<代码类="docutils literal notranslate">dbx使用不同的配置文件,替换<代码类="docutils literal notranslate">默认的与你的目标概要文件的名字。
例如,如果你有一个概要文件命名<代码类="docutils literal notranslate">DEV在你的<代码类="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环境变量而不是一个概要文件在你<代码类="docutils literal notranslate">.databrickscfg文件,然后离开<代码类="docutils literal notranslate">默认的在<代码类="docutils literal notranslate">deployment.yaml为是。<代码类="docutils literal notranslate">dbx默认情况下将使用这个引用。
提示
添加火花配置键-值对的工作,使用<代码类="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项目。(如果你没有任何代码方便,您可以使用的Python代码代码示例本文的末尾列出。)
请注意
你不需要这个文件名称<代码类="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=< existing-cluster-id > dbx-demo-job——没有包
在本地查看运行结果,看看你的终端输出。查看您的集群上运行的结果,去标准输出窗格中司机日志选项卡为您的集群。(见集群的司机和工人日志)。
继续下一个步骤。
创建一个最小的dbx Scala或Java项目
以下最小<代码类="docutils literal notranslate">dbx项目是最简单和最快的方式开始<代码类="docutils literal notranslate">dbx和Scala或Java。它展示了部署一个Scala或Java JAR砖工作区,然后运行部署JAR砖集群工作在你的砖工作区。
请注意
砖限制你如何可以在集群上运行Scala和Java代码:
你不能运行一个Scala或Java文件尽可能工作在一个集群,一个Python文件。运行Scala或Java代码,您必须首先构建成一个罐子里。
您可以运行一个罐子在现有的工作通用的集群。然而,您不能安装任何更新,罐子在同一集群通用。在这种情况下,您必须使用集群而不是工作。本节将使用集群工作的方法。
你必须首先部署JAR砖工作区之前您可以运行在任何通用集群部署JAR或工作集中在工作区。
在你的终端,从项目的根文件夹,运行<代码类="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">默认的概要文件在你的<代码类="docutils literal notranslate">.databrickscfg文件。如果你想要<代码类="docutils literal notranslate">dbx使用不同的配置文件,替换<代码类="docutils literal notranslate">——简介默认的与<代码类="docutils literal notranslate">——简介其次是你目标概要文件的名字,<代码类="docutils literal notranslate">dbx配置命令。
例如,如果你有一个概要文件命名<代码类="docutils literal notranslate">DEV在你的<代码类="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环境变量而不是一个概要文件在你<代码类="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:“n1-highmem-4”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的路径。对于Scala的IntelliJ IDEA,它可能是<代码类="docutils literal notranslate">文件:/ / / / dbx_demo_jar / dbx-demo.jar工件。Eclipse IDE使用Java、<代码类="docutils literal notranslate">文件:/ /目标/ dbx-demo-0.0.1-SNAPSHOT.jar。
的价值<代码类="docutils literal notranslate">main_class_nameJAR的主类的名称,例如<代码类="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">默认的概要文件在你的<代码类="docutils literal notranslate">.databrickscfg文件。如果你想要<代码类="docutils literal notranslate">dbx使用不同的配置文件,替换<代码类="docutils literal notranslate">默认的在这个<代码类="docutils literal notranslate">deployment.yaml文件中相应的参考<代码类="docutils literal notranslate">.dbx / project.json文件,进而引用相应的配置文件内<代码类="docutils literal notranslate">.databrickscfg文件。
例如,如果你有一个概要文件命名<代码类="docutils literal notranslate">DEV在你的<代码类="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环境变量而不是一个概要文件在你<代码类="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默认文件。
提示
添加火花配置键-值对的工作,使用<代码类="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发射dbx-demo-job
查看工作工作集群上运行的结果,明白了视图的工作。
查看引用的实验工作,明白了组织培训与MLflow运行实验。
继续下一个步骤。
创建一个dbx模板化项目与CI / CD支持Python
以下<代码类="docutils literal notranslate">dbx模板化Python项目演示支持批处理在砖上运行的Python代码通用的集群和工作的集群砖工作区,远程代码工件部署和CI / CD平台设置。bob体育客户端下载(创建一个最小的<代码类="docutils literal notranslate">dbxPython项目,只有演示了一个Python代码文件的批处理运行在现有通用集群,跳过回创建一个最小的dbx Python项目)。
从您的终端,在你<代码类="docutils literal notranslate">dbx项目的根文件夹,运行<代码类="docutils literal notranslate">dbx初始化命令。
dbx init
为project_name为项目输入一个名字,或按enter键接受默认项目名称。
为版本,输入版本号为您的项目开始,或按enter键接受默认项目版本。
为云,选择对应的数字数据砖云版本,您希望您的项目使用,或按Enter键接受默认。
为cicd_tool,选择对应于所支持的CI / CD工具,您希望您的项目使用,或按Enter键接受默认。
为project_slug输入一个前缀,您想要使用的资源在你的项目中,或按enter键接受默认。
为workspace_directory工作区目录,输入当地的路径为您的项目,或按enter键接受默认。
为artifact_location,砖工作区中输入路径写入您的项目工件,或按enter键接受默认。
为配置文件输入CLI身份验证配置文件的名称,你想让你的项目使用,或按enter键接受默认。
提示
您可以跳过前面的步骤通过运行<代码类="docutils literal notranslate">dbx初始化硬编码模板参数,例如:
dbx init -模板=“python_basic”\- p“project_name = cicd-sample-project”\- p“云=谷歌云”\- p“cicd_tool = GitLab”\- 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安装pyspark = X.Y.Z”,“X.Y.Z”# PySpark的版本相匹配#在你的目标集群。从pyspark.sql进口SparkSession从pyspark.sql.types进口*从datetime进口日期火花=SparkSession。构建器。浏览器名称(“dbx-demo”)。getOrCreate()#创建一个DataFrame组成的高和低的温度#机场代码和日期。模式=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(“从demo_temps_table SELECT *”\“AirportCode ! = BLI和日期>‘2021-04-01’”\“GROUP BY AirportCode,日期、TempHighF TempLowF”\“TempHighF DESC秩序”)df_temps。显示()#结果:## + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +# | AirportCode | |日期TempHighF | TempLowF |# + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +45 # | PDX | 64 | 2021-04-03 | |# | PDX | 61 | 2021-04-02 | 41 |43 57 #海| | 2021-04-03 | | |54 #海| | 2021-04-02 | | |# + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +#清理删除表从集群。火花。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(抽样,模式)/ /创建一个表的数据砖集群,然后填满/ /表DataFrame的内容。/ /从先前的运行,如果表已经存在/ /先删除它。火花。sql(“使用默认”)火花。sql(“如果存在demo_temps_table”删除表)临时工。写。saveAsTable(“demo_temps_table”)/ /查询砖集群上的表,返回的行/ /在机场代码不是BLI和日期晚/ /比2021-04-01。组织和秩序的结果高/ /温度按照降序排列。瓦尔df_temps=火花。sql(“从demo_temps_table SELECT *”+“AirportCode ! = BLI和日期>‘2021-04-01’”+“GROUP BY AirportCode,日期、TempHighF TempLowF”+“TempHighF DESC秩序”)df_temps。显示()/ /结果:/ // / + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +/ / | AirportCode | |日期TempHighF | TempLowF |/ / + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +/ / | PDX | 64 | 2021-04-03 | |/ / | PDX | 61 | 2021-04-02 | 41 |/ /海洋57 43 | | | 2021-04-03 | |54海/ / | | 2021-04-02 | | |/ / + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +/ /清理被删除的表数据砖集群。火花。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();/ /创建一个火花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,模式);/ /创建一个表的数据砖集群,然后填满/ /表DataFrame的内容。/ /从先前的运行,如果表已经存在/ /先删除它。火花。sql(“使用默认”);火花。sql(“如果存在demo_temps_table”删除表);临时工。写()。saveAsTable(“demo_temps_table”);/ /查询砖集群上的表,返回的行/ /在机场代码不是BLI和日期晚/ /比2021-04-01。组织和秩序的结果高/ /温度按照降序排列。数据集<行>df_temps=火花。sql(“从demo_temps_table SELECT *”+“AirportCode ! = BLI和日期>‘2021-04-01’”+“GROUP BY AirportCode,日期、TempHighF TempLowF”+“TempHighF DESC秩序”);df_temps。显示();/ /结果:/ // / + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +/ / | AirportCode | |日期TempHighF | TempLowF |/ / + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +/ / | PDX | 64 | 2021-04-03 | |/ / | PDX | 61 | 2021-04-02 | 41 |/ /海洋57 43 | | | 2021-04-03 | |54海/ / | | 2021-04-02 | | |/ / + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +/ /清理被删除的表数据砖集群。火花。sql(“DROP TABLE demo_temps_table”);}}
下一个步骤
扩展你的conf /部署。yaml文件支持各种类型的通用和集群的工作定义。
申报的多任务工作在你的<代码类="docutils literal notranslate">conf / deployment.yaml文件。
参考命名属性在你的<代码类="docutils literal notranslate">conf / deployment.yaml文件。
批处理集群上运行代码作为新的就业机会dbx执行命令。
额外的资源
批量部署代码构件砖工作区存储的dbx部署命令。
批处理运行在集群现有工作dbx发射命令。
BOB低频彩了解更多关于dbx和CI / CD。
databrickslabs / dbx在GitHub库