在Databricks笔记本中开发代码

本页描述如何在Databricks笔记本中开发代码,包括自动完成、Python和SQL的自动格式化、在笔记本中组合Python和SQL,以及跟踪笔记本的修订历史。

访问笔记本进行编辑

要打开笔记本,请使用工作区搜索功能或者使用工作区浏览器导航到笔记本然后点击笔记本的名称或图标。

键盘快捷键

若要显示键盘快捷键,请选择Help >键盘快捷键.可用的键盘快捷键取决于光标是否在代码单元格中(编辑模式)(命令模式)。

查找并替换文本

若要查找和替换笔记本中的文本,请选择编辑>查找和替换.当前匹配突出显示为橙色,所有其他匹配突出显示为黄色。

匹配的文本

单击,替换当前匹配项取代.若要替换笔记本中的所有匹配项,请单击替换所有

要在匹配之间移动,请单击上一页而且下一个按钮。你也可以按shift + enter而且输入分别转到上一场比赛和下一场比赛。

单击,关闭查找和替换工具删除图标或按esc

自动完成

您可以使用Databricks自动完成来自动完成您键入的代码段。Databricks支持两种类型的自动补全:本地和服务器。

本地自动完成在笔记本中定义的单词。服务器自动完成访问集群以获取已定义的类型、类和对象,以及SQL数据库和表名。要激活服务器自动完成,把你的笔记本连接到一个集群上而且运行所有单元格定义了可完成对象。

重要的

在执行命令时,R笔记本中的服务器自动完成被阻塞。

要触发自动完成,按选项卡在输入一个可完成对象后。的定义和运行单元格之后MyClass而且实例的方法。实例是可完成的,并且当您按下时显示有效的完成列表选项卡

触发自动完成

SQL数据库和表名补全、类型补全、语法高亮显示和SQL自动补全在SQL单元格中可用,当您在Python命令中使用SQL时,例如在spark.sql命令。

输入完成- - - - - - - - - - - -SQL完成

在Databricks Runtime 7.4及以上版本中,您可以通过按下显示Python文档字符串提示Shift + Tab在输入一个完整的Python对象后。文档字符串包含与帮助()函数。

Python文档字符串

运行选定文本

您可以突出显示笔记本单元格中的代码或SQL语句,并只运行选定的部分。当您希望快速迭代代码和查询时,这非常有用。

  1. 突出显示要运行的行。

  2. 选择执行>执行选中的文本或者使用键盘快捷键Ctrl+转变+输入.如果没有突出显示文本,运行选定文本执行当前行。

    运行选定的行

如果你正在使用在一个单元中混合语言,则必须包含% > <语言在选定区域中行。

运行选定文本如果高亮显示的选择中有折叠代码,也会执行折叠代码。

特殊的单元格命令,例如运行%%皮普,% sh都受支持。

运行选定的文本限制

你不能使用运行选定文本在具有多个输出选项卡的单元格上(即定义了数据概要文件或可视化的单元格)。

如果您没有使用新的笔记本编辑器运行选定文本仅在编辑模式下工作(即,当光标位于代码单元格中时)。如果光标在包含所选文本的单元格之外,运行选定文本不管用。为了避免这种限制,启用新的笔记本编辑器

格式化代码单元格

Databricks提供工具,允许您快速轻松地格式化笔记本单元格中的Python和SQL代码。这些工具减少了保持代码格式的工作,并有助于在笔记本电脑上强制执行相同的编码标准。

格式化Python单元格

预览

此功能已在公共预览

Databricks支持使用Python代码格式化黑色的在笔记本里。笔记本必须连接到一个集群黑色的而且tokenize-rt安装Python包,Black格式化程序在笔记本所连接的集群上执行。

在Databricks运行时11.2及以上版本上,Databricks预装黑色的而且tokenize-rt.您可以直接使用格式化程序,而不需要安装这些库。

在Databricks Runtime 11.1及以下版本上必须安装黑色= = 22.3.0而且tokenize-rt = = 4.2.1从笔记本或集群上的PyPI中使用Python格式化程序。您可以在笔记本上执行以下命令:

皮普安装黑色的= =22.3.0标记-rt= =4.2.1

在集群上安装库

有关安装库的详细信息,请参见Python环境管理

如何格式化Python和SQL单元格

你一定有编辑权限在笔记本上格式化代码。

可以通过以下方式触发格式化程序:

  • 格式化单个单元格

    • 键盘快捷键:按Cmd + Shift + F

    • 命令上下文菜单:

      • 格式化SQL单元格:选择SQL格式在SQL单元格的命令上下文下拉菜单中。此菜单项仅在SQL记事本单元格或带有%的sql语言的魔力

      • 格式化Python单元格:选择Python的格式在Python单元格的命令上下文下拉菜单中。此菜单项仅在Python笔记本单元格或带有% python语言的魔力

    • 笔记本编辑菜单:选择一个Python或SQL单元格,然后选择编辑>格式单元格

  • 格式化多个单元格

    选择多个单元然后选择编辑>格式单元格.如果选择一种以上语言的单元格,则只格式化SQL和Python单元格。这包括那些使用%的sql而且% python

  • 格式化笔记本中的所有Python和SQL单元格

    选择编辑>格式笔记本.如果您的笔记本包含一种以上的语言,则只有SQL和Python单元格被格式化。这包括那些使用%的sql而且% python

代码格式的限制

  • 黑色的执行PEP 84-空格缩进标准。缩进是不可配置的。

  • 不支持在SQL UDF中格式化嵌入的Python字符串。类似地,不支持在Python UDF中格式化SQL字符串。

版本历史

Databricks笔记本维护笔记本版本的历史记录,允许您查看和恢复笔记本的以前快照。您可以对版本执行以下操作:添加注释、恢复和删除版本、清除版本历史记录。

你也可以与远程Git存储库同步Databricks中的工作

要访问笔记本版本,请单击修订历史图标在右侧栏中。出现笔记本的修订历史。您也可以选择>版本历史

添加评论

对最新版本添加注释。

  1. 单击版本。

  2. 点击保存现在

    保存评论
  3. 在Save Notebook Revision对话框中,输入注释。

  4. 点击保存.笔记本版本与输入的注释一起保存。

恢复版本

恢复版本。

  1. 单击版本。

  2. 点击恢复此修订

    重新修订
  3. 点击确认.所选版本将成为笔记本的最新版本。

删除版本

删除一个版本表项。

  1. 单击版本。

  2. 点击垃圾图标垃圾

    删除修改
  3. 点击是的,抹去.所选版本将从历史记录中删除。

清晰的版本历史

清除版本历史记录后,将无法恢复。

清除笔记本的版本历史记录。

  1. 选择文件>清除版本历史记录

  2. 点击是的,清楚.清除笔记本版本历史记录。

笔记本上的代码语言

设置默认语言

笔记本的默认语言显示在笔记本名称旁边。

笔记本默认语言

若要更改默认语言,请单击语言按钮并从下拉菜单中选择新的语言。为了确保现有命令继续工作,前面默认语言的命令会自动添加一个语言魔术命令前缀。

混合语言

默认情况下,单元格使用笔记本的默认语言。您可以通过单击语言按钮并从下拉菜单中选择一种语言来覆盖单元格中的默认语言。

单元格语言下拉

您也可以使用language magic命令% > <语言在单元格的开头。支持的magic命令有:% pythonr %% scala,%的sql

请注意

的REPL中调用语言魔术命令时,该命令被分派给REPL执行上下文为了笔记本电脑。在一种语言中定义的变量(因此在该语言的REPL中定义的变量)在另一种语言的REPL中不可用。REPLs只能通过外部资源共享状态,例如DBFS中的文件或对象存储中的对象。

笔记本电脑还支持一些辅助魔法命令:

  • % sh:允许您在笔记本中运行shell代码。如果shell命令具有非零退出状态,要使单元格失败,请添加- e选择。该命令只在Apache Spark驱动程序上运行,而不是在worker上运行。要在所有节点上运行shell命令,请使用init脚本

  • % fs:允许使用dbutils文件系统命令。例如,运行dbutils.fs.ls命令列出文件,您可以指定% fsls代替。有关更多信息,请参见如何处理数据库上的文件

  • %医学博士:允许您包含各种类型的文档,包括文本、图像以及数学公式和方程。请参阅下一节。

Python命令中的SQL语法高亮显示和自动完成

语法高亮显示和SQL自动完成在Python命令中使用SQL时可用,例如在spark.sql命令。

使用Python本机探索Python笔记本中的SQL单元结果

您可能希望使用SQL加载数据,并使用Python进行探索。在Databricks Python笔记本中,来自SQL语言单元格的表结果会自动作为Python DataFrame提供。Python数据帧的名称是_sqldf

请注意

  • 在Python笔记本中,DataFrame_sqldf不会自动保存,而是替换为最近SQL单元格运行的结果。要保存DataFrame,在Python单元格中运行以下代码:

    new_dataframe_name_sqldf
  • 如果查询使用小部件对于参数化,结果不能作为Python DataFrame。

  • 如果查询使用关键字缓存表格UNCACHE表格,结果不能作为Python DataFrame。

截图显示了一个例子:

SQL结果数据框架

显示图像

控件中存储的图像FileStore,使用语法:

% md ! (测验](文件/ image.png

例如,假设你在FileStore中有Databricks标志图像文件:

dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png

当你在Markdown单元格中包含以下代码时:

Markdown单元格中的图像

图像在单元格中呈现:

渲染图像

显示数学方程式

笔记本电脑支持KaTeX用于显示数学公式和方程。例如,

% md \ \ c = \ \ \ \下午√{b ^ ^ 2 + 2} \ \) \ \ b (a {_i} {_j} = {_i} {_j} \ \) $ $ c = \ \ \ \下午sqrt {b ^ ^ 2 + 2} $ $ \ \ [{_i} {_j} = b {_i} {_j} \ \]

显示为:

渲染方程1

而且

%md \\(f(\beta)= -Y_t^T X_t \beta + \sum log(1+{e}^{X_t \子弹\β})+ \压裂{1}{2}\δt S_t ^ ^{1} \三角洲\ \)\ \(\δ=(β\ \ mu_ {t - 1}) \ \)

显示为:

渲染方程2

包括HTML

您可以使用该函数在笔记本中包含HTMLdisplayHTML.看到HTML, D3和SVG如何做到这一点的例子。

请注意

displayHTMLIframe是从域提供服务的databricksusercontent.com和iframe沙盒包括allow-same-origin属性。databricksusercontent.com必须可以从浏览器访问。如果当前被公司网络阻止,则必须将其添加到允许列表中。