开始
加载和管理数据
处理数据
政府
参考和资源
2023年1月13日更新
给我们反馈
Databricks Utilities (dbutils)使执行强大的任务组合变得容易。您可以使用这些实用程序来高效地使用对象存储、对笔记本进行链化和参数化,以及处理秘密。dbutils在笔记本电脑之外不支持。
dbutils
重要的
调用dbutils执行程序内部可能会产生意想不到的结果。要了解BOB低频彩更多关于的局限性dbutils还有其他可以替代的方法,看限制.
dbutilsPython、R和Scala笔记本中都有实用程序。
如何:工具列表,列表命令,显示命令帮助
公用事业公司:凭证,数据,fs,工作,图书馆,笔记本,秘密,小部件,实用程序API库
若要列出可用的实用程序以及每个实用程序的简短描述,请运行dbutils.help ()用于Python或Scala。
dbutils.help ()
本示例列出了Databricks实用程序的可用命令。
dbutils.帮助()
此模块为用户提供了与Databricks其余部分交互的各种实用程序。凭据:DatabricksCredentialUtils ->实用程序与笔记本内的凭据交互fs: DbfsUtils ->从控制台作业操作数据文件系统(DBFS): JobsUtils ->实用程序用于利用作业功能库:LibraryUtils ->实用程序用于会话隔离库notebook: NotebookUtils ->实用程序用于笔记本控制流(实验)secrets: SecretUtils ->提供实用程序用于利用笔记本小部件中的秘密:WidgetsUtils ->在笔记本中创建和获取输入小部件绑定值的方法
若要列出实用程序的可用命令以及每个命令的简短描述,请运行.help ()在实用程序的编程名称之后。
.help ()
本示例列出了Databricks File System (DBFS)实用程序的可用命令。
dbutils.fs.帮助()
dbutils.fs.help()
dbutils.fsprovides utilities for working with FileSystems. Most methods in this package can take either a DBFS path (e.g., "/foo" or "dbfs:/foo"), or another FileSystem URI. For more info about a method, use dbutils.fs.help("methodName"). In notebooks, you can also use the %fs shorthand to access DBFS. The %fs shorthand maps straightforwardly onto dbutils calls. For example, "%fs head --maxBytes=10000 /file/path" translates into "dbutils.fs.head("/file/path", maxBytes = 10000)". fsutils cp(from: String, to: String, recurse: boolean = false): boolean -> Copies a file or directory, possibly across FileSystems head(file: String, maxBytes: int = 65536): String -> Returns up to the first 'maxBytes' bytes of the given file as a String encoded in UTF-8 ls(dir: String): Seq -> Lists the contents of a directory mkdirs(dir: String): boolean -> Creates the given directory if it does not exist, also creating any necessary parent directories mv(from: String, to: String, recurse: boolean = false): boolean -> Moves a file or directory, possibly across FileSystems put(file: String, contents: String, overwrite: boolean = false): boolean -> Writes the given String out to a file, encoded in UTF-8 rm(dir: String, recurse: boolean = false): boolean -> Removes a file or directory mount mount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Mounts the given source directory into DBFS at the given mount point mounts: Seq -> Displays information about what is mounted within DBFS refreshMounts: boolean -> Forces all machines in this cluster to refresh their mount cache, ensuring they receive the most recent information unmount(mountPoint: String): boolean -> Deletes a DBFS mount point updateMount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Similar to mount(), but updates an existing mount point instead of creating a new one
需要显示命令帮助,使用命令.help(“<命令名>”)命令名后。
.help(“<命令名>”)
本示例显示DBFS复制命令的帮助。
dbutils.fs.帮助(“cp”)
dbutils.fs.help(“cp”)
/** *复制文件或目录,可能跨文件系统。* *示例:cp("/mnt/my-folder/a", "dbfs:/a/b") * * @param from FileSystem源文件或目录的URI * @param to FileSystem目标文件或目录的URI * @param递归如果为真,所有文件和目录都将被递归复制* @如果所有文件都复制成功,则返回true */ cp(from: java.lang. a")字符串,到:java.lang。字符串,递归:布尔= false):布尔
命令:assumeRole,showCurrentRole,showRoles
凭据实用程序允许您与笔记本中的凭据交互。此实用程序仅在集群上可用凭据透传启用。需要列出可使用的命令,执行dbutils.credentials.help ().
dbutils.credentials.help ()
showCurrentRole: List ->显示当前设置的角色showRoles: List ->显示可能假设的角色集
设置AWS身份和访问管理(IAM)角色在寻找凭据以使用Amazon S3进行身份验证时所承担的Amazon资源名称(ARN)。执行该命令后,可执行S3访问命令,如sc.textFile(“s3a: / /桶/ my-file.csv”)访问一个对象。
sc.textFile(“s3a: / /桶/ my-file.csv”)
需要查询该命令的帮助信息,使用命令dbutils.credentials.help(“assumeRole”).
dbutils.credentials.help(“assumeRole”)
dbutils.凭证.assumeRole(“攻击:aws:我::123456789012:角色/我的角色”)# Out[1]:真
dbutils.credentials.assumeRole(“攻击:aws:我::123456789012:角色/我的角色”)#真正的
dbutils.凭证.assumeRole(“攻击:aws:我::123456789012:角色/我的角色”)// res0: Boolean = true
列出当前设置的AWS IAM (Identity and Access Management)角色。
需要查询该命令的帮助信息,使用命令dbutils.credentials.help(“showCurrentRole”).
dbutils.credentials.help(“showCurrentRole”)
dbutils.凭证.showCurrentRole()# Out[1]: ['arn:aws:iam::123456789012:role/my-role-a']
dbutils.credentials.showCurrentRole()# ([1])# [1] "arn:aws:iam::123456789012:role/my-role-a"
dbutils.凭证.showCurrentRole()// res0: java.util。List[String] = [arn:aws:iam::123456789012:role/my-role-a]
列出可能假定的AWS身份和访问管理(IAM)角色集。
需要查询该命令的帮助信息,使用命令dbutils.credentials.help(“showRoles”).
dbutils.credentials.help(“showRoles”)
dbutils.凭证.showRoles()# Out[1]: ['arn:aws:iam::123456789012:role/my-role-a', 'arn:aws:iam::123456789012:role/my-role-b']
dbutils.credentials.showRoles()# ([1])# [1] "arn:aws:iam::123456789012:role/my-role-a"## [[2]]# [1] "arn:aws:iam::123456789012:role/my-role-b"
dbutils.凭证.showRoles()// res0: java.util。List[String] = [arn:aws:iam::123456789012:role/my-role-a, arn:aws:iam::123456789012:role/my-role-b]
预览
此功能已在公共预览.
请注意
在Databricks Runtime 9.0及以上版本中可用。
命令:总结
数据实用程序允许您理解和解释数据集。需要列出可使用的命令,执行dbutils.data.help ().
dbutils.data.help ()
dbutils。数据provides utilities for understanding and interpreting datasets. This module is currently in preview and may be unstable. For more info about a method, use dbutils.data.help("methodName"). summarize(df: Object, precise: boolean): void -> Summarize a Spark DataFrame and visualize the statistics to get quick insights
计算并显示Apache Spark DataFrame或pandas DataFrame的汇总统计信息。该命令适用于Python、Scala和R。
需要查询该命令的帮助信息,使用命令dbutils.data.help(“总结”).
dbutils.data.help(“总结”)
在Databricks Runtime 10.1及以上版本中,您可以使用附加的精确的参数调整计算统计信息的精度。
精确的
当精确的设置为false(默认值)时,一些返回的统计信息包括近似值以减少运行时间。
类别列的不同值的数量对于高基数列可能有~5%的相对误差。
当不同值的数量大于10000时,频繁值计数的误差可能高达0.01%。
直方图和百分位数估计相对于总行数可能有高达0.01%的误差。
当精确的设置为true时,将以更高的精度计算统计信息。除了直方图和数字列的百分位数,所有统计数据现在都是准确的。
相对于总行数,直方图和百分位数估计的误差可能高达0.0001%。
数据摘要输出顶部的工具提示指示当前运行的模式。
这个例子显示了默认启用近似的Apache Spark DataFrame的汇总统计信息。要查看结果,请在笔记本上运行此命令。本例是基于样本数据集.
df=火花.读.格式(“csv”).负载(' / databricks-datasets / Rdatasets /数据- 001 / csv / ggplot2 / diamonds.csv ',头=真正的,inferSchema=真正的)dbutils.数据.总结(df)
df<-read.df(“/ databricks-datasets / Rdatasets /数据- 001 / csv / ggplot2 / diamonds.csv”,源=“csv”,头=“真正的”,inferSchema=“真正的”)dbutils.data.summarize(df)
瓦尔df=火花.读.格式(“csv”).选项(“inferSchema”,“真正的”).选项(“头”,“真正的”).负载(“/ databricks-datasets / Rdatasets /数据- 001 / csv / ggplot2 / diamonds.csv”)dbutils.数据.总结(df)
注意,可视化使用如果符号要简洁地呈现小于0.01或大于10000的数值。作为一个例子,数值1.25 e15汽油将被渲染为1.25度.一个例外:可视化使用“B”1.0 e9(giga)而不是“G”。
1.25 e15汽油
1.25度
B
1.0 e9
G
警告
所有的Python实现dbutils.fs方法使用snake_case而不是camelCase关键字格式。
dbutils.fs
snake_case
camelCase
例如:whiledbuitls.fs.help ()显示选项extraConfigs为dbutils.fs.mount (),在Python中你会使用keyworkextra_configs.
dbuitls.fs.help ()
extraConfigs
dbutils.fs.mount ()
extra_configs
命令:cp,头,ls,mkdir,山,挂载,mv,把,refreshMounts,rm,卸载,updateMount
文件系统实用程序允许您访问什么是数据库文件系统(DBFS)?,使它更容易使用Databricks作为文件系统。需要列出可使用的命令,执行dbutils.fs.help ().
dbutils.fs.help ()
复制文件或目录,可能跨文件系统。
需要查询该命令的帮助信息,使用命令dbutils.fs.help (cp).
dbutils.fs.help (cp)
这个例子复制了命名的文件old_file.txt从/ FileStore来/ tmp /新,将复制文件重命名为new_file.txt.
old_file.txt
/ FileStore
/ tmp /新
new_file.txt
dbutils.fs.cp(“/ FileStore / old_file.txt”,“/ tmp /新/ new_file.txt”)# Out[4]:真
dbutils.fs.cp(“/ FileStore / old_file.txt”,“/ tmp /新/ new_file.txt”)#[1]正确
dbutils.fs.cp(“/ FileStore / old_file.txt”,“/ tmp /新/ new_file.txt”)// res3: Boolean = true
返回指定文件的最大字节数。字节作为UTF-8编码的字符串返回。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“头”).
dbutils.fs.help(“头”)
这个示例显示文件的前25个字节my_file.txt位于/ tmp.
my_file.txt
/ tmp
dbutils.fs.头(“/ tmp / my_file.txt”,25)#[截断到前25个字节]# Out[12]: 'Apache Spark真棒!\ n”
dbutils.fs.head(“/ tmp / my_file.txt”,25)#[1]“Apache Spark太棒了!\ n”
dbutils.fs.头(“/ tmp / my_file.txt”,25)//[截断到前25字节]// res4:字符串=// "Apache Spark太棒了! "/ /”
列出目录的内容。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“ls”).
dbutils.fs.help(“ls”)
的内容的信息/ tmp.的modificationTime在Databricks Runtime 10.2及以上版本中可用。在R,modificationTime作为字符串返回。
modificationTime
dbutils.fs.ls(“/ tmp”)# Out[13]: [FileInfo(path='dbfs:/tmp/my_file.txt', name='my_file.txt', size=40, modificationTime=1622054945000)]
dbutils.fs.ls(“/ tmp”)#从dbutels .fs.ls()得到更漂亮的结果,请使用' %fs ls '# ([1])#美元[[1]]的道路# [1] "dbfs:/tmp/my_file.txt"#美元[[1]]的名字"my_file.txt"#美元[[1]]的大小# [1]# isDir美元[[1]]# [1] false# isFile美元[[1]]#[1]正确# modificationTime美元[[1]]# [1] "1622054945000"
dbutils.fs.ls(“/ tmp”)// res6: Seq[com. databicks .backend.daemon.dbutils.]FileInfo] = WrappedArray(FileInfo(dbfs:/tmp/my_file.txt, my_file.txt, 40,1622054945000))
如果给定目录不存在,则创建该目录。还可以创建任何必要的父目录。
需要查询该命令的帮助信息,使用命令dbutils.fs.help (mkdir).
dbutils.fs.help (mkdir)
这个例子创建了目录结构/父母/孩子/孙子在/ tmp.
/父母/孩子/孙子
dbutils.fs.mkdir(“/ tmp /父母/孩子/孙子”)# Out[15]:真
dbutils.fs.mkdirs(“/ tmp /父母/孩子/孙子”)#[1]正确
dbutils.fs.mkdir(“/ tmp /父母/孩子/孙子”)// res7: Boolean = true
在指定的挂载点将指定的源目录挂载到DBFS中。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“山”).
dbutils.fs.help(“山”)
aws_bucket_name=“我的桶”mount_name=“s3-my-bucket”dbutils.fs.山(“s3a: / /% s"%aws_bucket_name,“/ mnt /% s"%mount_name)
瓦尔AwsBucketName=“我的桶”瓦尔MountName=“s3-my-bucket”dbutils.fs.山(“s3a: / /$AwsBucketName",“/ mnt /$MountName")
有关其他代码示例,请参见在Amazon S3中处理数据.
显示有关DBFS中当前挂载内容的信息。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“坐骑”).
dbutils.fs.help(“坐骑”)
dbutils.fs.挂载()# Out[11]: [MountInfo(mountPoint='/mnt/ databicks -results', source=' databicks -results', encryptionType='ss -s3')]
dbutils.fs.挂载()
移动文件或目录,可能跨文件系统。移动是复制后删除,即使是文件系统内的移动。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“mv”).
dbutils.fs.help(“mv”)
这个例子移动文件my_file.txt从/ FileStore来/ tmp /父母/孩子/ granchild.
/ tmp /父母/孩子/ granchild
dbutils.fs.mv(“/ FileStore / my_file.txt”,“/ tmp /父母/孩子/孙子”)# Out[2]:真
dbutils.fs.mv(“/ FileStore / my_file.txt”,“/ tmp /父母/孩子/孙子”)#[1]正确
dbutils.fs.mv(“/ FileStore / my_file.txt”,“/ tmp /父母/孩子/孙子”)// res1: Boolean = true
将指定的字符串写入文件。字符串是UTF-8编码的。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“”).
dbutils.fs.help(“”)
这个例子写入字符串你好,砖!到一个名为hello_db.txt在/ tmp.如果文件存在,它将被覆盖。
你好,砖!
hello_db.txt
dbutils.fs.把(“/ tmp / hello_db.txt”,“你好,砖!”,真正的)#写了18字节。# Out[6]:真
dbutils.fs.put(“/ tmp / hello_db.txt”,“你好,砖!”,真正的)#[1]正确
dbutils.fs.把(“/ tmp / hello_db.txt”,“你好,砖!”,真正的)//写了18字节。// res2: Boolean = true
强制集群中的所有机器刷新它们的挂载缓存,确保它们接收到最新的信息。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“refreshMounts”).
dbutils.fs.help(“refreshMounts”)
dbutils.fs.refreshMounts()
删除文件或目录。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“rm”).
dbutils.fs.help(“rm”)
这个例子删除了命名的文件hello_db.txt在/ tmp.
dbutils.fs.rm(“/ tmp / hello_db.txt”)# Out[8]:真
dbutils.fs.rm(“/ tmp / hello_db.txt”)#[1]正确
dbutils.fs.rm(“/ tmp / hello_db.txt”)// res6: Boolean = true
删除DBFS挂载点。
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“卸载”).
dbutils.fs.help(“卸载”)
dbutils.fs.卸载(“/ mnt / < mount-name >”)
类似于dbutils.fs.mount命令,但更新现有的挂载点,而不是创建一个新的挂载点。如果挂载点不存在,则返回错误。
dbutils.fs.mount
需要查询该命令的帮助信息,使用命令dbutils.fs.help(“updateMount”).
dbutils.fs.help(“updateMount”)
此命令适用于Databricks Runtime 10.2及以上版本。
aws_bucket_name=“我的桶”mount_name=“s3-my-bucket”dbutils.fs.updateMount(“s3a: / /% s"%aws_bucket_name,“/ mnt /% s"%mount_name)
瓦尔AwsBucketName=“我的桶”瓦尔MountName=“s3-my-bucket”dbutils.fs.updateMount(“s3a: / /$AwsBucketName",“/ mnt /$MountName")
Subutilities:taskValues
在Databricks Runtime 7.3及以上版本中可用。
此实用程序仅对Python可用。
jobs实用工具允许您利用jobs特性。要显示此实用程序的帮助,请运行dbutils.jobs.help ().
dbutils.jobs.help ()
提供用于利用作业特性的实用程序。taskValues: TaskValuesUtils >提供利用作业任务值的实用程序
命令:得到,集
这种微妙性仅适用于Python。
提供利用作业任务值的命令。
使用此子实用程序可在作业运行期间设置和获取任意值。这些值被称为任务值.您可以在同一作业运行中访问下游任务中的任务值。例如,您可以在作业运行中的不同任务之间传递标识符或度量,例如关于机器学习模型评估的信息。每个任务可以设置多个任务值、获取任务值或同时设置任务值。在同一任务中,每个任务值都有一个唯一的键。这个唯一的键称为任务值的键。使用任务名称和任务值的键访问任务值。
要显示此微妙性的帮助,请运行dbutils.jobs.taskValues.help ().
dbutils.jobs.taskValues.help ()
该命令仅适用于Python。
在Databricks Runtime 10.4及更早版本上,如果得到找不到任务,aPy4JJavaError而不是ValueError.
得到
ValueError
获取当前作业运行中指定任务的指定任务值的内容。
需要查询该命令的帮助信息,使用命令dbutils.jobs.taskValues.help(“”).
dbutils.jobs.taskValues.help(“”)
例如:
dbutils.工作.taskValues.得到(taskKey=“我的任务”,\关键=“我的钥匙”,\默认的=7,\debugValue=42)
在上面的例子中:
taskKey作业中的任务名称。如果命令无法找到此任务,则aValueError是提高。
taskKey
关键属性设置的任务值的键的名称是否为set命令(dbutls .jobs. taskvalues .set).如果命令无法找到此任务值的键,则aValueError被提高(除非默认的指定)。
关键
默认的
默认的是返回的可选值,如果关键找不到。默认的不能没有一个.
没有一个
debugValue是一个可选值,如果试图从运行在作业外部的笔记本中获取任务值,则返回该值。在调试过程中,如果您希望手动运行notebook并返回某个值而不是引发TypeError默认情况下。debugValue不能没有一个.
debugValue
TypeError
如果试图从运行在作业外部的笔记本中获取任务值,此命令将引发TypeError默认情况下。然而,如果debugValue参数在命令中指定,则debugValue返回而不是引发TypeError.
设置或更新任务值。您最多可以为作业运行设置250个任务值。
一些例子包括:
dbutils.工作.taskValues.集(关键=“我的钥匙”,\价值=5)dbutils.工作.taskValues.集(关键=“my-other-key”,\价值=“我的其他价值”)
在以上例子中:
关键此任务值的键的名称。此名称对于作业必须是唯一的。
价值此任务值的键的值。该命令必须能够在内部以JSON格式表示值。值的JSON表示的大小不能超过48 KiB。
价值
如果试图从运行在作业外部的笔记本中设置任务值,则此命令不起任何作用。
该库实用程序已弃用。
命令:安装,installPyPI,列表,restartPython,updateCondaEnv
库实用程序允许您安装Python库并创建一个范围为笔记本会话的环境。这些库在驱动程序和执行程序上都是可用的,因此您可以在用户定义的函数中引用它们。这使得:
要在笔记本本身内组织的笔记本的库依赖项。
具有不同库依赖关系的笔记本用户可以不受干扰地共享一个集群。
分离笔记本会破坏这种环境。但是,您可以通过重新运行库来重新创建它安装笔记本中的API命令。看到restartPythonAPI,用于如何在不丢失环境的情况下重置笔记本状态。
安装
restartPython
在Databricks Runtime ML或Databricks Runtime for Genomics上不提供库实用程序。相反,看到笔记本范围的Python库.
对于Databricks运行时7.2及以上版本,Databricks建议使用%皮普Magic命令安装笔记本范围的库。看到笔记本范围的Python库.
%皮普
默认情况下启用库实用程序。因此,默认情况下,每个笔记本的Python环境是通过使用单独的Python可执行文件来隔离的,该可执行文件是在笔记本附加到集群上并继承默认Python环境时创建的。透过init脚本在Databricks Python环境中仍然可用。您可以通过设置禁用此功能spark.databricks.libraryIsolation.enabled来假.
spark.databricks.libraryIsolation.enabled
假
此API与现有的集群范围的库安装兼容用户界面而且REST API.通过此API安装的库具有更高的优先级高于集群范围的库。
需要列出可使用的命令,执行dbutils.library.help ().
dbutils.library.help ()
install(path: String): boolean ->在当前notebook会话中安装库installPyPI(pypiPackage: String, version: String = "", repo: String = "", extras: String = ""): boolean ->在当前notebook会话列表中安装PyPI库:list ->列出通过dbutils为当前notebook会话添加的隔离库restartPython: void ->重启当前notebook会话的python进程updateCondaEnv(envYmlContent: String):boolean ->根据规格(environment的内容)更新当前笔记本的Conda环境
给定一个库的路径,在当前notebook会话中安装该库。通过调用此命令安装的库仅对当前笔记本可用。
需要查询该命令的帮助信息,使用命令dbutils.library.help(“安装”).
dbutils.library.help(“安装”)
此示例安装.egg或.whl图书馆在一个笔记本。
.egg
.whl
dbutils.library.install已在Databricks Runtime 11.0及以上版本中删除。
dbutils.library.install
Databricks建议您将所有库安装命令放在笔记本的第一个单元格中并调用restartPython在单元格的末端。Python笔记本运行后会重置状态restartPython;笔记本将丢失所有状态,包括但不限于本地变量、导入库和其他临时状态。因此,我们建议您安装库并在第一个笔记本电池。
公认的库源是dbfs而且s3.
dbfs
s3
dbutils.图书馆.安装(“dbfs: /道路/ /你/ library.egg”)dbutils.图书馆.restartPython()#删除Python状态,但某些库如果不调用此命令可能无法工作。
dbutils.图书馆.安装(“dbfs: /道路/ /你/ library.whl”)dbutils.图书馆.restartPython()#删除Python状态,但某些库如果不调用此命令可能无法工作。
您可以直接安装自定义车轮文件使用%皮普.在下面的例子中,我们假设你已经将你的库轮文件上传到DBFS:
%皮普安装/dbfs/路径/来/你的/图书馆.whl
pip不支持Egg文件,而wheel被认为是Python的构建和二进制打包的标准。看到车轮vs鸡蛋欲知详情。但是,如果您希望以与。兼容的方式使用egg文件%皮普,你可以使用以下的解决方案:
只有在尚未运行%pip命令时才需要执行此步骤。#它将触发设置隔离的笔记本环境%皮普安装<任何-自由>#这并不需要是一个真正的图书馆;例如,“%pip install any-lib”可以工作
进口sys#假设上一步已经完成,下面的命令#将egg文件添加到当前笔记本环境中sys.路径.附加(“/地方/道路/ / library.egg”)
给定一个Python包索引(PyPI)包,在当前notebook会话中安装该包。通过调用此命令安装的库在笔记本之间是隔离的。
需要查询该命令的帮助信息,使用命令dbutils.library.help(“installPyPI”).
dbutils.library.help(“installPyPI”)
本示例在笔记本中安装PyPI包。版本,回购,临时演员是可选的。使用临时演员参数指定额外的功能(额外的需求)。
版本
回购
临时演员
dbutils.图书馆.installPyPI(“pypipackage”,版本=“版本”,回购=“回购”,临时演员=“临时演员”)dbutils.图书馆.restartPython()#删除Python状态,但某些库如果不调用此命令可能无法工作。
dbutils.library.installPyPI已在Databricks Runtime 11.0及以上版本中删除。
dbutils.library.installPyPI
的版本而且临时演员key不能是PyPI包字符串的一部分。例如:dbutils.library.installPyPI(“azureml-sdk(砖)= = 1.19.0”)无效。使用版本而且临时演员参数来指定版本和额外信息,如下所示:
dbutils.library.installPyPI(“azureml-sdk(砖)= = 1.19.0”)
dbutils.图书馆.installPyPI(“azureml-sdk”,版本=“1.19.0”,临时演员=“砖”)dbutils.图书馆.restartPython()#删除Python状态,但某些库如果不调用此命令可能无法工作。
当更换dbutils.library.installPyPI命令与%皮普命令时,Python解释器会自动重启。执行install命令的方法如下:
%皮普安装azureml-sdk[砖]= =1.19.0
此示例在一个笔记本中指定库需求,并通过使用安装它们运行%在另一个。为此,首先定义要安装在笔记本中的库。本例使用一个名为InstallDependencies.
运行%
InstallDependencies
dbutils.图书馆.installPyPI(“火炬”)dbutils.图书馆.installPyPI(“scikit-learn”,版本=“1.19.1”)dbutils.图书馆.installPyPI(“azureml-sdk”,临时演员=“砖”)dbutils.图书馆.restartPython()#删除Python状态,但某些库如果不调用此命令可能无法工作。
然后将它们安装到需要这些依赖项的笔记本中。
% /路径/ / InstallDependencies运行#在第一个单元中安装依赖项。
进口火炬从sklearn.linear_model进口LinearRegression进口azureml...
这个示例在维护环境的同时重置Python笔记本状态。此技术仅在Python笔记本中可用。例如,您可以使用此技术重新加载预安装的不同版本的库Databricks:
dbutils.图书馆.installPyPI(“numpy”,版本=“1.15.4”)dbutils.图书馆.restartPython()
#确保在另一个单元格中开始使用库。进口numpy
你也可以使用这个技术来安装需要在进程启动时加载的库,比如tensorflow:
dbutils.图书馆.installPyPI(“tensorflow”)dbutils.图书馆.restartPython()
#使用另一个单元的库。进口tensorflow
列出通过库实用程序为当前笔记本会话添加的隔离库。这不包括附加到集群的库。
需要查询该命令的帮助信息,使用命令dbutils.library.help(“列表”).
dbutils.library.help(“列表”)
本示例列出了安装在笔记本中的库。
dbutils.图书馆.列表()
相当于此命令使用%皮普是:
%皮普冻结
重新启动当前notebook会话的Python进程。
需要查询该命令的帮助信息,使用命令dbutils.library.help(“restartPython”).
dbutils.library.help(“restartPython”)
这个例子重新启动当前notebook会话的Python进程。
dbutils.图书馆.restartPython()#删除Python状态,但某些库如果不调用此命令可能无法工作。
的内容更新当前笔记本的Conda环境environment.yml.此方法仅支持Conda上的Databricks Runtime。
environment.yml
需要查询该命令的帮助信息,使用命令dbutils.library.help(“updateCondaEnv”).
dbutils.library.help(“updateCondaEnv”)
这个示例根据提供的规范内容更新当前笔记本的Conda环境。
dbutils.图书馆.updateCondaEnv(”“”渠道:——水蟒依赖关系:——gensim = 3.4——nltk = 3.4”“”)
命令:退出,运行
笔记本实用程序允许您将笔记本连接在一起并对其结果进行操作。看到从另一个笔记本运行一个Databricks笔记本.
需要列出可使用的命令,执行dbutils.notebook.help ().
dbutils.notebook.help ()
exit(值:字符串):void ->这个方法让你退出一个值为run(路径:字符串,timeoutSeconds: int,参数:Map)的笔记本:String ->这个方法运行一个笔记本并返回它的退出值。
退出带有值的笔记本。
需要查询该命令的帮助信息,使用命令dbutils.notebook.help(“退出”).
dbutils.notebook.help(“退出”)
本例退出值为的笔记本退出从我的其他笔记本.
退出从我的其他笔记本
dbutils.笔记本.退出(《从我的另一个笔记本中退出》)#笔记本退出:退出我的另一个笔记本
dbutils.notebook.exit(《从我的另一个笔记本中退出》)#笔记本退出:退出我的另一个笔记本
dbutils.笔记本.退出(《从我的另一个笔记本中退出》)// Notebook exited:退出我的另一个Notebook
如果运行具有查询结构化流在后台运行,调用dbutils.notebook.exit ()不终止运行。只要查询在后台执行,运行就会继续执行。单击,可以停止在后台运行的查询取消在单元格中的查询或通过运行query.stop ().当查询停止时,可以使用dbutils.notebook.exit ().
dbutils.notebook.exit ()
query.stop ()
运行一个笔记本并返回它的退出值。默认情况下,笔记本将在当前集群中运行。
方法返回的字符串值的最大长度运行命令为5mb获取单个运行的输出(得到/ /运行/输出工作).
运行
得到/ /运行/输出工作
需要查询该命令的帮助信息,使用命令dbutils.notebook.help(“运行”).
dbutils.notebook.help(“运行”)
本例运行一个名为我的其他笔记本和打电话的笔记本在同一个位置。所谓的notebook以代码行结束dbutils.notebook.exit(“退出从我的其他笔记本”).如果被调用的notebook没有在60秒内完成运行,则抛出异常。
我的其他笔记本
dbutils.notebook.exit(“退出从我的其他笔记本”)
dbutils.笔记本.运行(《我的另一个笔记本》,60)# Out[14]:“退出我的另一个笔记本”
dbutils.笔记本.运行(《我的另一个笔记本》,60)// res2: String =退出我的其他笔记本
命令:得到,getBytes,列表,listScopes
secrets实用程序允许您存储和访问敏感的凭据信息,而不使它们在笔记本中可见。看到保密管理而且把秘密记在笔记本上.需要列出可使用的命令,执行dbutils.secrets.help ().
dbutils.secrets.help ()
get(scope: String, key: String): String ->获取具有作用域和键的秘密值的字符串表示形式getBytes(scope: String, key: String): byte[] ->获取具有作用域和键列表的秘密值的字节表示形式(scope: String): Seq ->列出作用域中秘密的秘密元数据listScopes: Seq ->列出秘密作用域
获取指定秘密作用域和键的秘密值的字符串表示形式。
管理员、秘密创建者和授权用户许可可以读取数据库的秘密。虽然Databricks努力编校可能显示在笔记本上的秘密值,但不可能阻止这样的用户读取机密。有关更多信息,请参见秘密的修订.
需要查询该命令的帮助信息,使用命令dbutils.secrets.help(“”).
dbutils.secrets.help(“”)
此示例获取指定作用域的secret值的字符串表示形式我的领域键名为我的钥匙.
我的领域
我的钥匙
dbutils.秘密.得到(范围=“我的领域”,关键=“我的钥匙”)# Out[14]: '[已编辑]'
dbutils.secrets.get(范围=“我的领域”,关键=“我的钥匙”)#[1] "[已编辑]"
dbutils.秘密.得到(范围=“我的领域”,关键=“我的钥匙”)// res0: String = [REDACTED]
获取指定范围和键的秘密值的字节表示形式。
需要查询该命令的帮助信息,使用命令dbutils.secrets.help(“getBytes”).
dbutils.secrets.help(“getBytes”)
这个示例获取secret值的字节表示形式(在这个示例中,a1 !b2@c3 #)指定的作用域我的领域键名为我的钥匙.
a1 !b2@c3 #
dbutils.秘密.getBytes(范围=“我的领域”,关键=“我的钥匙”)# Out[1]: b'a1!b2@c3 #”
dbutils.secrets.getBytes(范围=“我的领域”,关键=“我的钥匙”)# [1] 61 31 21 62 32 40 63 33 23
dbutils.秘密.getBytes(范围=“我的领域”,关键=“我的钥匙”)// res1: Array[Byte] = Array(97, 49, 33, 98, 50, 64, 99, 51, 35)
列出指定范围内秘密的元数据。
需要查询该命令的帮助信息,使用命令dbutils.secrets.help(“列表”).
dbutils.secrets.help(“列表”)
这个例子列出了命名范围内秘密的元数据我的领域.
dbutils.秘密.列表(“我的领域”)# Out[10]: [SecretMetadata(key='my-key')]
dbutils.secrets.list(“我的领域”)# ([1])#美元[[1]]键# [1] my-key
dbutils.秘密.列表(“我的领域”)// res2: Seq[com. databicks .dbutils_v1. txt](SecretMetadata(my-key))
列出可用的范围。
需要查询该命令的帮助信息,使用命令dbutils.secrets.help(“listScopes”).
dbutils.secrets.help(“listScopes”)
这个例子列出了可用的范围。
dbutils.秘密.listScopes()# Out[14]: [SecretScope(name='my-scope')]
dbutils.secrets.listScopes()# ([1])#美元[[1]]的名字# [1] "my-scope"
dbutils.秘密.listScopes()// res3: Seq[com. databicks .dbutils_v1. txt]= ArrayBuffer(my-scope)
命令:组合框,下拉,得到,getArgument,多选,删除,removeAll,文本
widgets实用工具允许您对笔记本进行参数化。看到砖小部件.
需要列出可使用的命令,执行dbutils.widgets.help ().
dbutils.widgets.help ()
combobox(名称:字符串,defaultValue:字符串,选项:Seq,标签:字符串):void ->创建一个具有给定名称、默认值和选项的组合框输入小部件(名称:字符串,defaultValue:字符串,选项:Seq,标签:字符串):void ->创建一个具有给定名称、默认值和选项的下拉输入小部件a get(名称:字符串):字符串->检索输入小部件的当前值getArgument(名称:字符串,可选:字符串):>(已弃用)等价于获取多选(名称:String, defaultValue: String, choices: Seq, label: String): void ->创建一个具有给定名称、默认值和选项的多选输入小部件remove(name: String): void ->从笔记本中删除一个输入小部件removeAll: void ->删除笔记本文本中的所有小部件(name: String, defaultValue: String, label: String): void ->创建一个具有给定名称和默认值的文本输入小部件
创建并显示具有指定编程名称、默认值、选项和可选标签的组合框小部件。
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(组合框).
dbutils.widgets.help(组合框)
此示例创建并显示具有编程名称的组合框小部件fruits_combobox.它提供了选择苹果,香蕉,椰子,龙水果的初始值香蕉.这个组合框小部件有一个附带的标签水果.本例以打印组合框小部件的初始值结束,香蕉.
fruits_combobox
苹果
香蕉
椰子
龙水果
水果
dbutils.小部件.组合框(的名字=“fruits_combobox”,defaultValue=“香蕉”,选择=[“苹果”,“香蕉”,“椰子”,“龙水果”),标签=“水果”)打印(dbutils.小部件.得到(“fruits_combobox”))#香蕉
dbutils.widgets.combobox(的名字=“fruits_combobox”,defaultValue=“香蕉”,选择=列表(“苹果”,“香蕉”,“椰子”,“龙水果”),标签=“水果”)打印(dbutils.widgets.get(“fruits_combobox”))#[1]香蕉
dbutils.小部件.组合框(“fruits_combobox”,“香蕉”,数组(“苹果”,“香蕉”,“椰子”,“龙水果”),“水果”)打印(dbutils.小部件.得到(“fruits_combobox”))/ /香蕉
创建并显示具有指定编程名称、默认值、选项和可选标签的下拉小部件。
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(下拉).
dbutils.widgets.help(下拉)
此示例创建并显示具有编程名称的下拉小部件toys_dropdown.它提供了选择字母块,篮球,角,娃娃的初始值篮球.这个下拉小部件有一个附带的标签玩具.本例以打印下拉小部件的初始值结束,篮球.
toys_dropdown
字母块
篮球
角
娃娃
玩具
dbutils.小部件.下拉(的名字=“toys_dropdown”,defaultValue=“篮球”,选择=[“字母积木”,“篮球”,“角”,“娃娃”),标签=“玩具”)打印(dbutils.小部件.得到(“toys_dropdown”))#篮球
dbutils.widgets.dropdown(的名字=“toys_dropdown”,defaultValue=“篮球”,选择=列表(“字母积木”,“篮球”,“角”,“娃娃”),标签=“玩具”)打印(dbutils.widgets.get(“toys_dropdown”))“篮球”
dbutils.小部件.下拉(“toys_dropdown”,“篮球”,数组(“字母积木”,“篮球”,“角”,“娃娃”),“玩具”)打印(dbutils.小部件.得到(“toys_dropdown”))/ /篮球
获取具有指定程序名称的小部件的当前值。这个程序名称可以是:
例如,笔记本中自定义小部件的名称fruits_combobox或toys_dropdown.
例如,作为笔记本任务的一部分传递给笔记本的自定义参数的名称的名字或年龄.方法中笔记本任务参数的覆盖范围,以获得更多信息创造一个工作UI或notebook_params在触发一个新的作业运行(帖子/工作/运行)操作。
的名字
年龄
notebook_params
帖子/工作/运行
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(“”).
dbutils.widgets.help(“”)
此示例获取具有编程名称的小部件的值fruits_combobox.
dbutils.小部件.得到(“fruits_combobox”)#香蕉
dbutils.widgets.get(“fruits_combobox”)#[1]香蕉
dbutils.小部件.得到(“fruits_combobox”)// res6:字符串=香蕉
此示例获取具有编程名称的notebook任务参数的值年龄.设置为35当相关的笔记本任务运行时。
35
dbutils.小部件.得到(“年龄”)# 35
dbutils.widgets.get(“年龄”)# [1] "35"
dbutils.小部件.得到(“年龄”)// res6: String = 35
获取具有指定程序名称的小部件的当前值。如果小部件不存在,则可以返回一条可选消息。
该命令不建议使用。使用dbutils.widgets.get代替。
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(“getArgument”).
dbutils.widgets.help(“getArgument”)
此示例获取具有编程名称的小部件的值fruits_combobox.如果此小部件不存在,则消息错误:不能找到水果组合框返回。
错误:不能找到水果组合框
dbutils.小部件.getArgument(“fruits_combobox”,“错误:无法找到水果组合框”)#弃用警告:使用dbutels .widgets.text()或dbutels .widgets.dropdown()创建小部件,使用dbutels .widgets.get()获取其绑定值。# Out[3]:“香蕉”
dbutils.widgets.getArgument(“fruits_combobox”,“错误:无法找到水果组合框”)#弃用警告:使用dbutels .widgets.text()或dbutels .widgets.dropdown()创建小部件,使用dbutels .widgets.get()获取其绑定值。#[1]香蕉
dbutils.小部件.getArgument(“fruits_combobox”,"错误:无法找到水果组合框")// command-1234567890123456:1:警告:trait WidgetsUtils中的方法getArgument已弃用:使用dbutils.widgets.text()或dbutils.widgets.dropdown()创建一个小部件,并使用dbutils.widgets.get()获取其绑定值。/ / dbutils.widgets。getArgument(“fruits_combobox”,"错误:无法找到水果组合框")/ / ^// res7:字符串=香蕉
创建并显示具有指定编程名称、默认值、选项和可选标签的多选小部件。
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(多选).
dbutils.widgets.help(多选)
此示例创建并显示具有编程名称的多选小部件days_multiselect.它提供了选择周一通过周日的初始值周二.这个多选小部件有一个附带的标签天的的周.本例以打印多选小部件的初始值结束,周二.
days_multiselect
周一
周日
周二
天的的周
dbutils.小部件.多选(的名字=“days_multiselect”,defaultValue=“星期二”,选择=[“周一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”,“星期天”),标签=“一周的日子”)打印(dbutils.小部件.得到(“days_multiselect”))#周二
dbutils.widgets.multiselect(的名字=“days_multiselect”,defaultValue=“星期二”,选择=列表(“周一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”,“星期天”),标签=“一周的日子”)打印(dbutils.widgets.get(“days_multiselect”))#[1]“星期二”
dbutils.小部件.多选(“days_multiselect”,“星期二”,数组(“周一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”,“星期天”),“一周的日子”)打印(dbutils.小部件.得到(“days_multiselect”))/ /日
删除具有指定程序名称的小部件。
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(“删除”).
dbutils.widgets.help(“删除”)
如果添加命令以删除小部件,则不能添加后续命令以在同一单元格中创建小部件。必须在另一个单元格中创建小部件。
此示例删除具有编程名称的小部件fruits_combobox.
dbutils.小部件.删除(“fruits_combobox”)
dbutils.widgets.remove(“fruits_combobox”)
从笔记本中删除所有小部件。
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(“removeAll”).
dbutils.widgets.help(“removeAll”)
如果添加了删除所有小部件的命令,则不能添加后续命令在同一单元格中创建任何小部件。必须在另一个单元格中创建小部件。
本示例从笔记本中删除所有小部件。
dbutils.小部件.removeAll()
dbutils.widgets.removeAll()
创建并显示具有指定编程名称、默认值和可选标签的文本小部件。
需要查询该命令的帮助信息,使用命令dbutils.widgets.help(“文本”).
dbutils.widgets.help(“文本”)
此示例创建并显示具有编程名称的文本小部件your_name_text.的初始值输入你的的名字.这个文本小部件有一个附带的标签你的的名字.本例以打印文本小部件的初始值结束,输入你的的名字.
your_name_text
输入你的的名字
你的的名字
dbutils.小部件.文本(的名字=“your_name_text”,defaultValue=“输入你的名字”,标签=“你的名字”)打印(dbutils.小部件.得到(“your_name_text”))#输入你的名字
dbutils.widgets.text(的名字=“your_name_text”,defaultValue=“输入你的名字”,标签=“你的名字”)打印(dbutils.widgets.get(“your_name_text”))#[1]输入你的名字
dbutils.小部件.文本(“your_name_text”,“输入您的姓名”,“你的名字”)打印(dbutils.小部件.得到(“your_name_text”))//输入你的名字
为了加速应用程序开发,在将应用程序部署为生产作业之前,编译、构建和测试应用程序会很有帮助。为使您能够根据Databricks实用程序进行编译,Databricks提供了dbutils-api图书馆。你可以下载dbutils-api图书馆的DBUtils API或者通过在构建文件中添加依赖项来包含该库:
dbutils-api
SBT
libraryDependencies+ =“com.databricks”%“dbutils-api_TARGET”%“版本”
Maven
< >的依赖< groupId >com.databricks< / groupId >< artifactId >dbutils-api_TARGET< / artifactId ><版本>版本> < /版本< / >的依赖
Gradle
编译“com.databricks: dbutils-api_TARGET:版本”
取代目标与期望的目标(例如2.12),版本使用所需的版本(例如0.0.5).有关可用目标和版本的列表,请参见DBUtils APIMaven Repository网站上的网页。
目标
2.12
0.0.5
根据这个库构建应用程序之后,就可以部署应用程序了。
的dbutils-api库允许您在本地编译使用dbutils,但不是运行它。要运行应用程序,必须将其部署在Databricks中。
调用dbutils内部的执行程序可能会产生意想不到的结果或可能导致错误。
如果需要在执行器上运行文件系统操作,使用dbutils,有几个更快、更可扩展的替代方案可用:
对于文件复制或移动操作,您可以检查中描述的运行文件系统操作的更快选项并行文件系统操作.
对于文件系统的列表和删除操作,可以参考Spark的并行列表和删除方法如何在数据库中更快地列出和删除文件.
有关执行程序的信息,请参见集群模式概述在Apache Spark网站上。