磚公用事業

磚實用程序(dbutils)使執行強大的任務組合變得容易。您可以使用這些實用程序有效地使用對象存儲,對筆記本進行鏈和參數化,並處理秘密。dbutils在筆記本之外不支持。

重要的

調用dbutils執行程序內部可能產生意想不到的結果。以了解更多有關的限製dbutils還有其他可以替代的方法,見限製

dbutils實用程序在Python、R和Scala筆記本中可用。

如何工具列表列表命令顯示命令的幫助

公用事業公司憑證數據fs圖書館筆記本秘密小部件實用程序API庫

列出可用的公用事業公司

若要列出可用的實用程序以及每個實用程序的簡短說明,請運行dbutils.help ()對於Python或Scala。

本示例列出了Databricks實用程序的可用命令。

dbutils幫助()
dbutils幫助()
這個模塊為用戶提供了各種實用工具,以與Databricks的其餘部分進行交互。用於在筆記本中與憑證交互的實用程序fs: DbfsUtils ->從控製台庫操作Databricks文件係統(DBFS): LibraryUtils ->用於會話隔離庫的實用程序notebook: NotebookUtils ->用於筆記本控製流的實用程序(EXPERIMENTAL) secrets: SecretUtils ->提供在筆記本小部件中利用秘密的實用程序:在筆記本中創建和獲取輸入小部件綁定值的方法

列出實用程序的可用命令

若要列出實用程序的可用命令以及每個命令的簡短描述,請運行.help ()在實用程序的編程名稱之後。

這個示例列出了Databricks文件係統(DBFS)實用程序的可用命令。

dbutilsfs幫助()
dbutils.fs.help()
dbutilsfs幫助()
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(“<命令名>”)在命令名稱後。

這個例子顯示了對DBFS拷貝命令的幫助。

dbutilsfs幫助“cp”
dbutils.fs.help“cp”
dbutilsfs幫助“cp”
/** *複製文件或目錄,可能跨文件係統。* *示例:cp("/mnt/my-folder/a", "dbfs://a/b") * * @param from源文件或目錄的文件係統URI * @param to目標文件或目錄的文件係統URI * @param recurse如果為true,則遞歸複製所有文件和目錄* @return true如果所有文件都成功複製*/ cp(from: java.lang.目錄)字符串,:. lang。字符串,recurse: boolean = false): boolean

證書效用(dbutils.credentials)

命令assumeRoleshowCurrentRoleshowRoles

憑證實用程序允許您與筆記本中的憑證交互。此實用程序僅在具有的集群上可用憑據透傳啟用。執行命令,列出可用的命令dbutils.credentials.help ()

gauserole (role: String): boolean ->設置使用S3尋找憑據進行認證時所承擔的角色ARN。showCurrentRole: List ->顯示當前設置的角色。showRoles: List ->顯示可能假定的角色集合

assumeRole命令(dbutils.credentials.assumeRole)

為AWS身份和訪問管理(IAM)角色設置Amazon資源名(ARN),以便在尋找使用Amazon S3進行身份驗證的憑據時使用。執行該命令後,可以執行S3訪問命令,例如sc.textFile(“s3a: / /桶/ my-file.csv”)訪問一個對象。

要顯示該命令的幫助信息,請執行命令dbutils.credentials.help(“assumeRole”)

dbutils憑證assumeRole“攻擊:aws:我::123456789012:角色/我的角色”#[1]:真的
dbutils.credentials.assumeRole“攻擊:aws:我::123456789012:角色/我的角色”#真正的
dbutils憑證assumeRole“攻擊:aws:我::123456789012:角色/我的角色”// res0: Boolean = true

showCurrentRole命令(dbutils.credentials.showCurrentRole)

列出當前設置的AWS IAM (Identity and Access Management)角色。

要顯示該命令的幫助信息,請執行命令dbutils.credentials.help(“showCurrentRole”)

dbutils憑證showCurrentRole()#[1]:['攻擊:aws:我::123456789012:角色/ my-role-a ')
dbutils.credentials.showCurrentRole()# ([1])#[1]”是:aws:我::123456789012:角色/ my-role-a”
dbutils憑證showCurrentRole()/ / res0: java.util。列表[String] =[攻擊:aws:我::123456789012:角色/ my-role-a]

showRoles命令(dbutils.credentials.showRoles)

列出可能假定的AWS身份和訪問管理(IAM)角色的集合。

要顯示該命令的幫助信息,請執行命令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]”是:aws:我::123456789012:角色/ my-role-a”# [[2]]#[1]”是:aws:我::123456789012:角色/ 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]

數據效用(dbutils.data)

預覽

此功能已在公共預覽

請注意

在Databricks Runtime 9.0及以上版本中可用。

命令總結

數據實用程序允許您理解和解釋數據集。執行命令,列出可用的命令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

總結命令(dbutils.data.summarize)

計算並顯示Apache Spark DataFrame或pandas的彙總統計信息。該命令可用於Python、Scala和R。

要顯示該命令的幫助信息,請執行命令dbutils.data.help(“總結”)

在Databricks Runtime 10.1及以上版本中,您可以使用附加的精確的參數調整計算統計信息的精度。

請注意

此功能已在公共預覽

  • 精確的設置為false(默認值)時,一些返回的統計信息包括近似值,以減少運行時間。

    • 類別列的不同值的數目對於高基數列可能有~5%的相對誤差。

    • 當不同值的數量大於10000時,頻繁值計數可能有高達0.01%的誤差。

    • 相對於總行數,直方圖和百分位估計的誤差可能高達0.01%。

  • 精確的設置為true時,統計數據計算精度更高。除了直方圖和數字列的百分位數外,所有的統計數據現在都是精確的。

    • 相對於總行數,直方圖和百分位估計的誤差可能高達0.0001%。

數據摘要輸出頂部的工具提示指示當前運行的模式。

此示例顯示默認啟用近似值的Apache Spark DataFrame的彙總統計信息。要查看結果,在筆記本上運行此命令。本例是基於樣本數據集(databricks-datasets)

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.summarizedf
瓦爾df火花格式“csv”選項“inferSchema”“真正的”選項“頭”“真正的”負載“/ databricks-datasets / Rdatasets /數據- 001 / csv / ggplot2 / diamonds.csv”dbutils數據總結df

注意,可視化使用如果符號簡潔地呈現小於0.01或大於10000的數值。以數值為例1.25 e15汽油將呈現為1.25度.一個例外:可視化使用“B1.0 e9giga)而不是“G”。

文件係統實用程序

命令cplsmkdir掛載mvrefreshMountsrm卸載updateMount

文件係統實用程序允許您訪問數據庫文件係統(DBFS),使得Databricks作為文件係統更容易使用。執行命令,列出可用的命令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

cp命令(dbutils.fs.cp)

複製文件或目錄(可能跨文件係統)。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help (cp)

此示例複製命名的文件old_file.txt/ FileStore/ tmp /新,將複製的文件重命名為new_file.txt

dbutilsfscp“/ FileStore / old_file.txt”“/ tmp /新/ new_file.txt”#[4]:真的
dbutils.fs.cp“/ FileStore / old_file.txt”“/ tmp /新/ new_file.txt”# [1]
dbutilsfscp“/ FileStore / old_file.txt”“/ tmp /新/ new_file.txt”// res3: Boolean = true

頭命令(dbutils.fs.head)

返回給定文件的最多指定的最大字節數。字節作為UTF-8編碼的字符串返回。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“頭”)

此示例顯示文件的前25個字節my_file.txt位於/ tmp

dbutilsfs“/ tmp / my_file.txt”25#[被截斷到前25個字節]# Out[12]: 'Apache Spark太棒了!\ n”
dbutils.fs.head“/ tmp / my_file.txt”25Apache Spark太棒了!\ n”
dbutilsfs“/ tmp / my_file.txt”25//[被截斷到前25字節]// res4: String =// "Apache Spark太棒了!/ /”

ls命令(dbutils.fs.ls)

列出目錄的內容。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“ls”)

的內容的信息/ tmp.的modificationTime字段在Databricks Runtime 10.2及以上版本中可用。在R,modificationTime作為字符串返回。

dbutilsfsls“/ tmp”# Out[13]: [FileInfo(path='dbfs:/tmp/my_file.txt', name='my_file.txt', size=40, modificationTime=1622054945000)]
dbutils.fs.ls“/ tmp”#為了從dbutls .fs.ls()獲得更漂亮的結果,請使用' %fs ls  '# ([1])#美元[[1]]的道路#[1]”dbfs: / tmp / my_file.txt”#美元[[1]]的名字#[1]“my_file.txt”#美元[[1]]的大小40 # [1]# isDir美元[[1]]#[1]假# isFile美元[[1]]# [1]# modificationTime美元[[1]]#[1]“1622054945000”
dbutilsfsls“/ tmp”/ / res6: Seq [com.databricks.backend.daemon.dbutils。FileInfo] = WrappedArray(FileInfo(dbfs:/tmp/my_file.txt, my_file.txt, 40,1622054945000))

mkdir命令(dbutils.fs.mkdirs)

如果給定目錄不存在,則創建該目錄。還可以創建任何必要的父目錄。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help (mkdir)

本示例創建目錄結構/父母/孩子/孫子/ tmp

dbutilsfsmkdir“/ tmp /父母/孩子/孫子”#[15]:真的
dbutils.fs.mkdirs“/ tmp /父母/孩子/孫子”# [1]
dbutilsfsmkdir“/ tmp /父母/孩子/孫子”// res7: Boolean = true

mount命令(dbutils.fs.mount)

在指定的掛載點將指定的源目錄掛載到DBFS中。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“山”)

aws_bucket_name“我的桶”mount_name“s3-my-bucket”dbutilsfs“s3a: / /% saws_bucket_name“/ mnt /% smount_name
瓦爾AwsBucketName“我的桶”瓦爾MountName“s3-my-bucket”dbutilsfs“s3a: / /AwsBucketName“/ mnt /MountName

有關其他代碼示例,請參見Amazon S3

坐騎命令(dbutils.fs.mounts)

顯示有關DBFS中當前掛載的內容的信息。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“坐騎”)

dbutilsfs掛載()# Out[11]: [MountInfo(mountPoint='/mnt/databricks-results', source='databricks-results', encryptionType=' ses -s3')]
dbutilsfs掛載()

有關其他代碼示例,請參見Amazon S3

mv命令(dbutils.fs.mv)

移動文件或目錄,可能跨文件係統。移動是複製後的刪除,即使是文件係統中的移動也是如此。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“mv”)

這個示例移動文件my_file.txt/ FileStore/ tmp /父母/孩子/ granchild

dbutilsfsmv“/ FileStore / my_file.txt”“/ tmp /父母/孩子/孫子”#[2]:真的
dbutils.fs.mv“/ FileStore / my_file.txt”“/ tmp /父母/孩子/孫子”# [1]
dbutilsfsmv“/ FileStore / my_file.txt”“/ tmp /父母/孩子/孫子”// res1: Boolean = true

把命令(dbutils.fs.put)

將指定的字符串寫入文件。該字符串是UTF-8編碼的。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“”)

這個示例寫入字符串你好,磚!到一個名為hello_db.txt/ tmp.如果文件存在,它將被覆蓋。

dbutilsfs“/ tmp / hello_db.txt”“你好,磚!”真正的寫了18字節。#[6]:真的
dbutils.fs.put“/ tmp / hello_db.txt”“你好,磚!”真正的# [1]
dbutilsfs“/ tmp / hello_db.txt”“你好,磚!”真正的//寫了18字節。// res2: Boolean = true

refreshMounts命令(dbutils.fs.refreshMounts)

強製集群中的所有機器刷新它們的掛載緩存,確保它們接收到最新的信息。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“refreshMounts”)

dbutilsfsrefreshMounts()
dbutilsfsrefreshMounts()

有關其他代碼示例,請參見Amazon S3

rm命令(dbutils.fs.rm)

刪除文件或目錄。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“rm”)

此示例刪除指定的文件hello_db.txt/ tmp

dbutilsfsrm“/ tmp / hello_db.txt”#[8]:真的
dbutils.fs.rm“/ tmp / hello_db.txt”# [1]
dbutilsfsrm“/ tmp / hello_db.txt”// res6: Boolean = true

卸載命令(dbutils.fs.unmount)

刪除DBFS掛載點。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“卸載”)

dbutilsfs卸載“/ mnt / < mount-name >”

有關其他代碼示例,請參見Amazon S3

updateMount命令(dbutils.fs.updateMount)

類似於dbutils.fs.mount命令,但是更新現有的掛載點,而不是創建一個新的掛載點。如果掛載點不存在,則返回錯誤。

要顯示該命令的幫助信息,請執行命令dbutils.fs.help(“updateMount”)

該命令在Databricks Runtime 10.2及以上版本中可用。

aws_bucket_name“我的桶”mount_name“s3-my-bucket”dbutilsfsupdateMount“s3a: / /% saws_bucket_name“/ mnt /% smount_name
瓦爾AwsBucketName“我的桶”瓦爾MountName“s3-my-bucket”dbutilsfsupdateMount“s3a: / /AwsBucketName“/ mnt /MountName

庫工具(dbutils.library)

請注意

庫實用程序已棄用。

命令安裝installPyPI列表restartPythonupdateCondaEnv

庫實用程序允許您安裝Python庫並創建一個範圍為筆記本會話的環境。這些庫在驅動程序和執行程序上都可用,因此可以在用戶定義的函數中引用它們。這使得:

  • 要在筆記本本身內組織的筆記本的庫依賴項。

  • 具有不同庫依賴關係的筆記本用戶可以不受幹擾地共享集群。

分離一個筆記本會破壞這種環境。但是,您可以通過重新運行庫來重新創建它安裝筆記本中的API命令。看到restartPython如何重置筆記本狀態而不丟失環境的API。

重要的

庫實用程序在Databricks Runtime ML或Databricks Runtime for Genomics上不可用。相反,看到Notebook-scoped Python庫

對於Databricks Runtime 7.2及以上版本,Databricks建議使用%皮普安裝筆記本作用域庫的魔術命令。看到Notebook-scoped Python庫

默認情況下,庫實用程序是啟用的。因此,默認情況下,每個筆記本的Python環境是通過使用單獨的Python可執行文件來隔離的,該可執行文件是在將筆記本附加到集群上並繼承集群上的默認Python環境時創建的。通過init腳本進入Databricks Python環境仍然可用。您可以通過設置禁用此功能spark.databricks.libraryIsolation.enabled

該API與現有的集群範圍庫安裝兼容用戶界麵而且REST API.通過此API安裝的庫具有更高的優先級高於集群範圍的庫。

執行命令,列出可用的命令dbutils.library.help ()

安裝當前筆記本會話內的庫installPyPI(pypiPackage: String, version: String = "", repo: String = "", extras: String = ""): boolean ->安裝當前筆記本會話內的PyPI庫列表:list ->列出通過dbutils restartPython: void ->為當前筆記本會話重新啟動python進程updateCondaEnv(envYmlContent: String):基於environment的規範(內容)更新當前筆記本的Conda環境

安裝命令(dbutils.library.install)

給定庫的路徑,在當前筆記本會話中安裝該庫。通過調用此命令安裝的庫僅對當前筆記本可用。

要顯示該命令的幫助信息,請執行命令dbutils.library.help(“安裝”)

此示例安裝一個.egg.whl筆記本裏的圖書館。

重要的

dbutils.library.install在Databricks Runtime 11.0及以上版本中刪除。

Databricks建議您將所有庫安裝命令放在筆記本的第一個單元格中並調用restartPython在那個牢房的盡頭。Python筆記本運行後會重置狀態restartPython;筆記本失去所有狀態,包括但不限於本地變量、導入的庫和其他臨時狀態。因此,我們建議您安裝庫並在第一個筆記本電池。

公認的圖書館資源是dbfs而且s3

dbutils圖書館安裝“dbfs: /道路/ /你/ library.egg”dbutils圖書館restartPython()#移除Python狀態,但有些庫不調用此命令可能無法工作。
dbutils圖書館安裝“dbfs: /道路/ /你/ library.whl”dbutils圖書館restartPython()#移除Python狀態,但有些庫不調用此命令可能無法工作。

請注意

您可以直接安裝自定義車輪文件使用%皮普.在下麵的例子中,我們假設你已經上傳了你的庫輪文件到DBFS:

皮普安裝/dbfs/路徑//你的/圖書館whl

pip不支持Egg文件,wheel被認為是Python構建和二進製打包的標準。看到輪與蛋為更多的細節。但是,如果您希望以一種與。兼容的方式使用egg文件%皮普,你可以使用以下解決方案:

#此步驟僅在尚未運行任何%pip命令時才需要。#它將觸發設置獨立的筆記本環境皮普安裝<任何-自由>#這並不需要是一個真正的庫;例如“%pip install any-lib”就可以工作
進口sys假設前麵的步驟已經完成,下麵的命令#將egg文件添加到當前筆記本環境中sys路徑附加“/地方/道路/ / library.egg”

installPyPI命令(dbutils.library.installPyPI)

給定一個Python包索引(PyPI)包,在當前筆記本會話中安裝該包。通過調用此命令安裝的庫在筆記本之間是隔離的。

要顯示該命令的幫助信息,請執行命令dbutils.library.help(“installPyPI”)

這個示例在筆記本電腦中安裝一個PyPI包。版本回購,臨時演員是可選的。使用臨時演員參數來指定額外的功能(額外的需求)。

dbutils圖書館installPyPI“pypipackage”版本“版本”回購“回購”臨時演員“臨時演員”dbutils圖書館restartPython()#移除Python狀態,但有些庫不調用此命令可能無法工作。

重要的

dbutils.library.installPyPI在Databricks Runtime 11.0及以上版本中刪除。

版本而且臨時演員key不能是PyPI包字符串的一部分。例如:dbutils.library.installPyPI(“azureml-sdk(磚)= = 1.19.0”)不是有效的。使用版本而且臨時演員參數指定版本和附加信息,如下所示:

dbutils圖書館installPyPI“azureml-sdk”版本“1.19.0”臨時演員“磚”dbutils圖書館restartPython()#移除Python狀態,但有些庫不調用此命令可能無法工作。

請注意

當更換dbutils.library.installPyPI命令與%皮普命令時,會自動重新啟動Python解釋器。可以執行如下命令:

皮普安裝azureml-sdk= =1.19.0

此示例在一個筆記本中指定庫需求,並使用運行%在另一個。為此,首先定義要安裝在筆記本中的庫。本例使用了一個名為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.list)

列出通過庫實用程序為當前筆記本會話添加的獨立庫。這並不包括附加到集群的庫。

要顯示該命令的幫助信息,請執行命令dbutils.library.help(“列表”)

本示例列出了安裝在筆記本中的庫。

dbutils圖書館列表()

請注意

相當於此命令使用%皮普是:

皮普凍結

restartPython命令(dbutils.library.restartPython)

重新啟動當前筆記本會話的Python進程。

要顯示該命令的幫助信息,請執行命令dbutils.library.help(“restartPython”)

這個例子為當前的筆記本會話重新啟動Python進程。

dbutils圖書館restartPython()#移除Python狀態,但有些庫不調用此命令可能無法工作。

updateCondaEnv命令(dbutils.library.updateCondaEnv)

的內容更新當前筆記本的Conda環境environment.yml.該方法僅在Conda上的Databricks Runtime支持。

要顯示該命令的幫助信息,請執行命令dbutils.library.help(“updateCondaEnv”)

這個示例基於提供的規範的內容更新當前筆記本的Conda環境。

dbutils圖書館updateCondaEnv"""渠道:——水蟒依賴關係:——gensim = 3.4——nltk = 3.4"""

筆記本效用(dbutils.notebook)

命令退出運行

筆記本實用程序允許您將筆記本連接在一起,並根據它們的結果進行操作。看到筆記本的工作流

執行命令,列出可用的命令dbutils.notebook.help ()

這個方法讓你退出一個值為run(path: String, timeoutSeconds: int, arguments: Map)的筆記本電腦:String ->這個方法運行一個筆記本電腦並返回它的退出值。

退出命令(dbutils.notebook.exit)

退出帶有值的筆記本。

要顯示該命令的幫助信息,請執行命令dbutils.notebook.help(“退出”)

此示例退出帶有該值的筆記本退出我的其他筆記本

dbutils筆記本退出“從我的另一個筆記本退出”#筆記本退出:退出我的另一個筆記本
dbutils.notebook.exit“從我的另一個筆記本退出”#筆記本退出:退出我的另一個筆記本
dbutils筆記本退出“從我的另一個筆記本退出”//筆記本退出:退出我的另一個筆記本

運行命令(dbutils.notebook.run)

運行一個筆記本電腦並返回它的退出值。默認情況下,筆記本將在當前集群中運行。

請注意

對象返回的字符串值的最大長度運行命令為5 MB獲取單次運行的輸出得到/ /運行/輸出工作).

要顯示該命令的幫助信息,請執行命令dbutils.notebook.help(“運行”)

此示例運行一個名為我的其他筆記本和打電話的筆記本在同一個位置。所謂的notebook以代碼行結束dbutils.notebook.exit(“退出我的其他筆記本”).如果被調用的筆記本沒有在60秒內完成運行,則拋出異常。

dbutils筆記本運行“我的其他筆記本”60#退出[14]:“退出我的另一個筆記本”
dbutils筆記本運行“我的其他筆記本”60// res2: String =退出我的其他筆記本

秘密效用(dbutils.secrets)

命令得到getBytes列表listScopes

secrets實用程序允許您存儲和訪問敏感的憑據信息,而不使它們在筆記本中可見。看到保密管理而且使用筆記本上的秘密.執行命令,列出可用的命令dbutils.secrets.help ()

getBytes(scope: String, key: String): byte[] ->獲取帶範圍和鍵的秘密值的字節表示形式,帶範圍和鍵列表(scope: String): Seq ->列出範圍內秘密的秘密元數據listScopes: Seq ->列出秘密範圍

得到命令(dbutils.secrets.get)

獲取指定秘密範圍和鍵的秘密值的字符串表示形式。

警告

授予管理員、秘密創建者和用戶許可可以讀取數據庫的機密。雖然Databricks努力編輯可能顯示在筆記本上的機密值,但不可能阻止這類用戶閱讀機密。有關更多信息,請參見秘密的修訂

要顯示該命令的幫助信息,請執行命令dbutils.secrets.help(“”)

此示例獲取命名範圍的秘密值的字符串表示形式我的領域鍵名為我的鑰匙

dbutils秘密得到範圍“我的領域”關鍵“我的鑰匙”#[14]:“[編輯]”
dbutils.secrets.get範圍“我的領域”關鍵“我的鑰匙”#[1]”(修訂)”
dbutils秘密得到範圍“我的領域”關鍵“我的鑰匙”// res0: String = [REDACTED]

getBytes命令(dbutils.secrets.getBytes)

獲取指定範圍和鍵的秘密值的字節表示形式。

要顯示該命令的幫助信息,請執行命令dbutils.secrets.help(“getBytes”)

這個例子獲取了secret值(a1 !b2@c3 #)為命名的作用域我的領域鍵名為我的鑰匙

my_secretdbutils秘密getBytes範圍“我的領域”關鍵“我的鑰匙”my_secret解碼“utf - 8”#[1]:“a1 !b2@c3 #”
my_secretdbutils.secrets.getBytes範圍“我的領域”關鍵“我的鑰匙”打印rawToCharmy_secret))#[1]“a1 !b2@c3 #”
瓦爾mySecretdbutils秘密getBytes範圍“我的領域”關鍵“我的鑰匙”瓦爾convertedString字符串mySecretprintlnconvertedString/ / a1 !b2@c3 #// mySecret: Array[Byte] = Array(97, 49, 33, 98, 50, 64, 99, 51, 35)// convertedString: String = a1!b2@c3 #

命令列表(dbutils.secrets.list)

列出指定範圍內機密的元數據。

要顯示該命令的幫助信息,請執行命令dbutils.secrets.help(“列表”)

此示例列出了命名範圍內機密的元數據我的領域

dbutils秘密列表“我的領域”# [10]: [SecretMetadata(關鍵= '我的鑰匙'))
dbutils.secrets.list“我的領域”# ([1])#美元[[1]]鍵#[1]“我的鑰匙”
dbutils秘密列表“我的領域”/ /它:Seq [com.databricks.dbutils_v1。SecretMetadata] = ArrayBuffer (SecretMetadata(鑰匙)

listScopes命令(dbutils.secrets.listScopes)

列出可用的範圍。

要顯示該命令的幫助信息,請執行命令dbutils.secrets.help(“listScopes”)

本示例列出了可用的作用域。

dbutils秘密listScopes()# [14]: [SecretScope (name = '我的領域'))
dbutils.secrets.listScopes()# ([1])#美元[[1]]的名字#[1]“我的領域”
dbutils秘密listScopes()/ / res3: Seq [com.databricks.dbutils_v1。SecretScope] = ArrayBuffer (SecretScope(我的領域)

widget工具(dbutils.widgets)

命令組合框下拉得到getArgument多選刪除removeAll文本

小部件實用程序允許您參數化筆記本。看到磚小部件

執行命令,列出可用的命令dbutils.widgets.help ()

創建一個有給定名稱、默認值和選項的組合框輸入小部件(name: String, defaultValue: String, choices: Seq, label: String): void ->創建一個有給定名稱、默認值和選項的下拉輸入小部件a get(name: String): String ->檢索輸入小部件的當前值getArgument(name: String,可選:String): String -> (DEPRECATED)等價於get multiselect(name: String,可選:String):String, defaultValue: String, choices: Seq, label: String): void ->創建一個具有給定名稱、默認值和選項的多選擇輸入小部件remove(name: String): void ->從筆記本中刪除一個輸入小部件removeAll: void ->刪除筆記本文本中的所有小部件(name: String, defaultValue: String, label: String): void ->創建一個具有給定名稱和默認值的文本輸入小部件

組合框命令(dbutils.widgets.combobox)

創建並顯示具有指定編程名稱、默認值、選項和可選標簽的組合框小部件。

要顯示該命令的幫助信息,請執行命令dbutils.widgets.help(組合框)

此示例創建並顯示一個具有編程名稱的組合框小部件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.get)

獲取具有指定編程名稱的小部件的當前值。這個程序名稱可以是:

  • 例如,筆記本中自定義小部件的名稱fruits_comboboxtoys_dropdown

  • 例如,作為筆記本任務的一部分傳遞給筆記本的自定義參數的名稱的名字年齡.有關更多信息,請參閱中筆記本任務的參數覆蓋創建一個工作UI或notebook_params字段觸發一個新的作業運行帖子/工作/運行)操作。

要顯示該命令的幫助信息,請執行命令dbutils.widgets.help(“”)

此示例獲取具有編程式名稱的小部件的值fruits_combobox

dbutils小部件得到“fruits_combobox”#香蕉
dbutils.widgets.get“fruits_combobox”#[1]“香蕉”
dbutils小部件得到“fruits_combobox”// res6: String = banana . //

此示例獲取具有編程名稱的筆記本任務參數的值年齡.此參數設置為35當運行相關的筆記本任務時。

dbutils小部件得到“年齡”# 35
dbutils.widgets.get“年齡”#[1]“35”
dbutils小部件得到“年齡”// res6: String = 35

getArgument命令(dbutils.widgets.getArgument)

獲取具有指定編程名稱的小部件的當前值。如果小部件不存在,則可以返回一條可選消息。

請注意

該命令已棄用。使用dbutils.widgets.get代替。

要顯示該命令的幫助信息,請執行命令dbutils.widgets.help(“getArgument”)

此示例獲取具有編程式名稱的小部件的值fruits_combobox.如果此小部件不存在,則消息錯誤:不能找到水果組合框返回。

dbutils小部件getArgument“fruits_combobox”“錯誤:找不到水果組合框”使用dbutls .widgets.text()或dbutls .widgets.dropdown()創建小部件,使用dbutls .widgets.get()獲取其綁定值。#[3]:“香蕉”
dbutils.widgets.getArgument“fruits_combobox”“錯誤:找不到水果組合框”使用dbutls .widgets.text()或dbutls .widgets.dropdown()創建小部件,使用dbutls .widgets.get()獲取其綁定值。#[1]“香蕉”
dbutils小部件getArgument“fruits_combobox”"錯誤:找不到水果組合框"// command-1234567890123456:1:警告:trait WidgetsUtils中的getArgument方法已被棄用:使用dbutls .widgets.text()或dbutls .widgets.dropdown()創建一個小部件,使用dbutls .widgets.get()獲取它的綁定值。/ / dbutils.widgets。getArgument(“fruits_combobox”,"錯誤:找不到水果組合框")/ / ^// res7: String = banana . //

多選命令(dbutils.widgets.multiselect)

創建並顯示具有指定編程名稱、默認值、選項和可選標簽的多選擇小部件。

要顯示該命令的幫助信息,請執行命令dbutils.widgets.help(多選)

此示例創建並顯示具有編程式名稱的多選擇小部件days_multiselect.它提供了多種選擇周一通過周日的初始值周二.這個多選擇小部件有一個附帶的標簽.這個例子以打印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.remove)

刪除具有指定編程名稱的小部件。

要顯示該命令的幫助信息,請執行命令dbutils.widgets.help(“刪除”)

重要的

如果添加了刪除小部件的命令,則不能添加後續命令在同一單元格中創建小部件。您必須在另一個單元格中創建小部件。

此示例刪除具有編程式名稱的小部件fruits_combobox

dbutils小部件刪除“fruits_combobox”
dbutils.widgets.remove“fruits_combobox”
dbutils小部件刪除“fruits_combobox”

removeAll命令(dbutils.widgets.removeAll)

從筆記本中刪除所有小部件。

要顯示該命令的幫助信息,請執行命令dbutils.widgets.help(“removeAll”)

重要的

如果添加命令來刪除所有小部件,則不能添加後續命令來在同一單元格中創建任何小部件。您必須在另一個單元格中創建小部件。

此示例從筆記本中刪除所有小部件。

dbutils小部件removeAll()
dbutils.widgets.removeAll()
dbutils小部件removeAll()

文本命令(dbutils.widgets.text)

創建並顯示具有指定編程名稱、默認值和可選標簽的文本小部件。

要顯示該命令的幫助信息,請執行命令dbutils.widgets.help(“文本”)

此示例創建並顯示具有編程式名稱的文本小部件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”))#輸入你的名字
dbutils小部件文本“your_name_text”輸入您的名字”“你的名字”打印dbutils小部件得到“your_name_text”))//輸入您的名字

Databricks Utilities API庫

為了加速應用程序開發,在將應用程序部署為生產作業之前,編譯、構建和測試應用程序是很有幫助的。為使您能夠使用Databricks實用程序進行編譯,Databricks提供了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網站上的網頁。

根據這個庫構建應用程序之後,就可以部署應用程序了。

重要的

dbutils-api庫允許您在本地編譯使用dbutils,但不是去運行它。要運行應用程序,必須在Databricks中部署它。

限製

調用dbutils執行程序的內部可能產生意想不到的結果或可能導致錯誤。

如果需要在執行程序上使用dbutils,有幾個更快、更可擴展的替代方案:

有關執行程序的信息,請參見集群模式概述在Apache Spark網站上。