在Databricks笔记本中开发代码
本页描述如何在Databricks笔记本中开发代码,包括自动完成、Python和SQL的自动格式化、在笔记本中组合Python和SQL,以及跟踪笔记本的修订历史。
查找并替换文本
若要查找和替换笔记本中的文本,请选择编辑>查找和替换.当前匹配突出显示为橙色,所有其他匹配突出显示为黄色。
单击,替换当前匹配项取代.若要替换笔记本中的所有匹配项,请单击替换所有.
要在匹配之间移动,请单击上一页而且下一个按钮。你也可以按shift + enter而且输入分别转到上一场比赛和下一场比赛。
单击,关闭查找和替换工具或按esc.
自动完成
您可以使用Databricks自动完成来自动完成您键入的代码段。Databricks支持两种类型的自动补全:本地和服务器。
本地自动完成在笔记本中定义的单词。服务器自动完成访问集群以获取已定义的类型、类和对象,以及SQL数据库和表名。要激活服务器自动完成,把你的笔记本连接到一个集群上而且运行所有单元格定义了可完成对象。
重要的
在执行命令时,R笔记本中的服务器自动完成被阻塞。
要触发自动完成,按选项卡在输入一个可完成对象后。的定义和运行单元格之后MyClass
而且实例
的方法。实例
是可完成的,并且当您按下时显示有效的完成列表选项卡.
SQL数据库和表名补全、类型补全、语法高亮显示和SQL自动补全在SQL单元格中可用,当您在Python命令中使用SQL时,例如在spark.sql
命令。
- - - - - - - - - - - -
在Databricks Runtime 7.4及以上版本中,您可以通过按下显示Python文档字符串提示Shift + Tab在输入一个完整的Python对象后。文档字符串包含与帮助()
函数。
运行选定文本
您可以突出显示笔记本单元格中的代码或SQL语句,并只运行选定的部分。当您希望快速迭代代码和查询时,这非常有用。
突出显示要运行的行。
选择执行>执行选中的文本或者使用键盘快捷键
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单元格
你一定有编辑权限在笔记本上格式化代码。
可以通过以下方式触发格式化程序:
格式化单个单元格
格式化多个单元格
选择多个单元然后选择编辑>格式单元格.如果选择一种以上语言的单元格,则只格式化SQL和Python单元格。这包括那些使用
%的sql
而且% python
.格式化笔记本中的所有Python和SQL单元格
选择编辑>格式笔记本.如果您的笔记本包含一种以上的语言,则只有SQL和Python单元格被格式化。这包括那些使用
%的sql
而且% python
.
代码格式的限制
黑色的执行PEP 84-空格缩进标准。缩进是不可配置的。
不支持在SQL UDF中格式化嵌入的Python字符串。类似地,不支持在Python UDF中格式化SQL字符串。
版本历史
Databricks笔记本维护笔记本版本的历史记录,允许您查看和恢复笔记本的以前快照。您可以对版本执行以下操作:添加注释、恢复和删除版本、清除版本历史记录。
你也可以与远程Git存储库同步Databricks中的工作.
要访问笔记本版本,请单击在右侧栏中。出现笔记本的修订历史。您也可以选择>版本历史.
笔记本上的代码语言
混合语言
默认情况下,单元格使用笔记本的默认语言。您可以通过单击语言按钮并从下拉菜单中选择一种语言来覆盖单元格中的默认语言。
您也可以使用language magic命令% > <语言
在单元格的开头。支持的magic命令有:% python
,r %
,% 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。
截图显示了一个例子:
显示图像
控件中存储的图像FileStore,使用语法:
% md ! (测验](文件/ image.png)
例如,假设你在FileStore中有Databricks标志图像文件:
dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png
当你在Markdown单元格中包含以下代码时:
图像在单元格中呈现:
显示数学方程式
笔记本电脑支持KaTeX用于显示数学公式和方程。例如,
% md \ \ c = \ \ \ \下午√{b ^ ^ 2 + 2} \ \) \ \ b (a {_i} {_j} = {_i} {_j} \ \) $ $ c = \ \ \ \下午sqrt {b ^ ^ 2 + 2} $ $ \ \ [{_i} {_j} = b {_i} {_j} \ \]
显示为:
而且
%md \\(f(\beta)= -Y_t^T X_t \beta + \sum log(1+{e}^{X_t \子弹\β})+ \压裂{1}{2}\δt S_t ^ ^{1} \三角洲\ \)\ \(\δ=(β\ \ mu_ {t - 1}) \ \)
显示为:
包括HTML
您可以使用该函数在笔记本中包含HTMLdisplayHTML
.看到HTML, D3和SVG如何做到这一点的例子。
请注意
的displayHTML
Iframe是从域提供服务的databricksusercontent.com
和iframe沙盒包括allow-same-origin
属性。databricksusercontent.com
必须可以从浏览器访问。如果当前被公司网络阻止,则必须将其添加到允许列表中。
链接到其他笔记本电脑
您可以使用相对路径链接到Markdown单元格中的其他笔记本或文件夹。指定href
属性作为相对路径,以$
然后遵循与Unix文件系统相同的模式:
%md 当前笔记本的父文件夹中的文件夹的链接 嵌套笔记本的链接 .