開始
加載和管理數據
處理數據
政府
引用和資源
2023年4月11日更新
給我們反饋
磚實用程序(dbutils)可以很容易地執行任務的強大組合。您可以使用實用程序使用對象存儲效率,連鎖和參數化的筆記本電腦,和工作秘密。dbutils不支持外的筆記本。
dbutils
重要的
調用dbutils內部執行人可以產生意想不到的結果。了解更多的限製dbutils可以使用相反,看到的和備選方案限製。
dbutils實用工具可以在Python中,R, Scala的筆記本。
如何:工具列表,列表命令,顯示命令的幫助
公用事業公司:憑證,數據,fs,工作,圖書館,筆記本,秘密,小部件,實用程序API庫
列出可用的工具以及一個簡短的描述對於每個實用程序,運行dbutils.help ()Python或Scala。
dbutils.help ()
這個例子磚實用工具可用命令列表。
dbutils。幫助()
該模塊為用戶提供了各種工具與磚。憑證:DatabricksCredentialUtils - >實用工具與憑證在筆記本電腦進行交互fs: DbfsUtils - >操縱磚文件係統(DBFS)從控製台工作:JobsUtils - >實用工具庫利用工作特性:LibraryUtils會話隔離庫筆記本- >實用工具:NotebookUtils - >實用程序控製流的一個筆記本(實驗)的秘密:SecretUtils - >提供公用事業利用秘密在筆記本電腦部件:WidgetsUtils - >方法來創建和獲取綁定輸入小部件在筆記本的價值
為一個實用程序可用命令列表以及一個簡短描述的每個命令,運行.help ()在編程工具的名稱。
.help ()
這個示例列表可用命令的磚文件係統(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 /文件夾/”,“dbfs: / a / b”) * * @param從源文件或目錄的文件係統URI URI * @param文件係統的目標文件或目錄* @param遞歸如果這是真的,所有的文件和目錄將遞歸複製* @return真的如果所有文件被成功複製* / cp (: . lang。字符串,:. lang。字符串,遞歸:布爾= false):布爾
命令:assumeRole,showCurrentRole,showRoles
憑證實用程序允許您在筆記本電腦與憑證。這個工具是可用的集群憑據透傳啟用。列出可用的命令,運行dbutils.credentials.help ()。
dbutils.credentials.help ()
assumeRole(角色:字符串):布爾- >設置角色攻擊時假設尋找與S3 showCurrentRole憑據進行身份驗證:列表- >顯示當前設置角色showRoles:列表- >顯示了一組可能的假定的角色
集亞馬遜資源名(攻擊)AWS身份和訪問管理(IAM)角色承擔當尋找與Amazon S3憑據進行身份驗證。運行此命令後,您可以運行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:角色/我的角色”)#[1]:真的
dbutils.credentials.assumeRole(“攻擊:aws:我::123456789012:角色/我的角色”)#真正的
dbutils。憑證。assumeRole(“攻擊:aws:我::123456789012:角色/我的角色”)/ / res0:布爾= true
列出了目前集AWS身份和訪問管理(IAM)的作用。
顯示幫助這個命令,運行dbutils.credentials.help (“showCurrentRole”)。
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]
列表的集合可能認為AWS身份和訪問管理(IAM)的角色。
顯示幫助這個命令,運行dbutils.credentials.help (“showRoles”)。
dbutils.credentials.help (“showRoles”)
dbutils。憑證。showRoles()#[1]:['攻擊:aws:我::123456789012:角色/ my-role-a’,‘攻擊:aws:我::123456789012:角色/ 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。列表[String] =[攻擊:aws:我::123456789012:角色/ my-role-a攻擊:aws:我::123456789012:角色/ my-role-b]
預覽
這個特性是在公共預覽。
請注意
在磚運行時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火花DataFrame或熊貓DataFrame。這個命令是用於Python, Scala和R。
顯示幫助這個命令,運行dbutils.data.help(“總結”)。
dbutils.data.help(“總結”)
在磚運行時10.1及以上的,你可以使用附加的精確的參數調整的精度計算統計數據。
精確的
當精確的設置為false(默認),一些統計數據包括近似回到減少運行時間。
分類列的不同值的數量可能有~ 5%的高聚合度的相對誤差列。
頻繁的價值高達0.01%的數量可能有一個錯誤在不同值的數量大於10000。
直方圖和百分比的估計可能的誤差相對於總數0.01%的行。
當精確的被設置為true,統計計算具有較高的精度。除了直方圖統計和百分位數數字列現在確切。
直方圖和百分比的估計可能的誤差相對於總數0.0001%的行。
頂部的工具提示的數據彙總輸出顯示當前運行的模式。
這個例子顯示彙總統計為一個Apache火花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
例如:當dbuitls.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)是什麼?,使其更容易使用磚作為一個文件係統。列出可用的命令,運行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”)#[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:布爾= 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個字節)# [12]:“Apache火花是太棒了! \ n”
dbutils.fs.head(“/ tmp / my_file.txt”,25)# [1]“Apache火花是太棒了! \ n”
dbutils。fs。頭(“/ tmp / my_file.txt”,25)/ /(截斷前25個字節)= / / res4:字符串”/ / Apache火花是很棒!/ /”
列出一個目錄的內容。
顯示幫助這個命令,運行dbutils.fs.help (“ls”)。
dbutils.fs.help (“ls”)
這個例子中顯示的內容信息/ tmp。的modificationTime字段可以在磚運行時10.2及以上。在R,modificationTime作為一個字符串返回。
modificationTime
dbutils。fs。ls(“/ tmp”)# [13]:[FileInfo (= ' dbfs: / tmp / my_file路徑。txt my_file, name =。txt”,大小= 40,modificationTime = 1622054945000)]
dbutils.fs.ls(“/ tmp”)#從dbutils.fs.ls漂亮結果(< dir >),請使用“% fs ls < dir >”# ([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”
dbutils。fs。ls(“/ tmp”)/ / res6: Seq [com.databricks.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 /父母/孩子/孫子”)#[15]:真的
dbutils.fs.mkdirs(“/ tmp /父母/孩子/孫子”)# [1]
dbutils。fs。mkdir(“/ tmp /父母/孩子/孫子”)/ / res7:布爾= 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.refreshMounts ()在所有其他運行集群傳播新山。看到refreshMounts命令(dbutils.fs.refreshMounts)。
dbutils.fs.refreshMounts ()
dbutils。fs。掛載()# [11]:[MountInfo(掛載點=“/ mnt / databricks-results”=“databricks-results”來源,encryptionType = ' sse-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 /父母/孩子/孫子”)#[2]:真的
dbutils.fs.mv(“/ FileStore / my_file.txt”,“/ tmp /父母/孩子/孫子”)# [1]
dbutils。fs。mv(“/ FileStore / my_file.txt”,“/ tmp /父母/孩子/孫子”)/ / res1:布爾= true
將指定的字符串寫入一個文件。是utf - 8編碼的字符串。
顯示幫助這個命令,運行dbutils.fs.help (“”)。
dbutils.fs.help (“”)
這個例子寫字符串你好,磚!一個文件命名hello_db.txt在/ tmp。如果文件存在,它將被覆蓋。
你好,磚!
hello_db.txt
dbutils。fs。把(“/ tmp / hello_db.txt”,“你好,磚!”,真正的)# 18個字節寫道。#[6]:真的
dbutils.fs.put(“/ tmp / hello_db.txt”,“你好,磚!”,真正的)# [1]
dbutils。fs。把(“/ tmp / hello_db.txt”,“你好,磚!”,真正的)/ /寫了18個字節。/ /它:布爾= 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”)#[8]:真的
dbutils.fs.rm(“/ tmp / hello_db.txt”)# [1]
dbutils。fs。rm(“/ tmp / hello_db.txt”)/ / res6:布爾= true
刪除一個DBFS掛載點。
為了避免錯誤,從不修改掛載點,其他工作正在閱讀或寫作。修改掛載後,始終運行dbutils.fs.refreshMounts ()在所有其他集群運行任何掛載傳播更新。看到refreshMounts命令(dbutils.fs.refreshMounts)。
顯示幫助這個命令,運行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”)
這個命令可以在磚運行時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
在磚運行時7.3及以上。
這個工具是Python隻有。
工作實用程序允許您利用工作特性。顯示幫助這個實用程序,運行dbutils.jobs.help ()。
dbutils.jobs.help ()
提供了利用公用事業工作特性。taskValues: TaskValuesUtils - >提供了利用公用事業工作任務值
命令:得到,集
這對於Python subutility隻可用。
提供了利用工作任務命令值。
使用這個子工具設置和獲取任意值在運行工作。這些值被稱為任務值。您可以訪問任務值在下遊任務運行在相同的工作。例如,您可以溝通標識符或指標,如機器學習模型的評價信息,不同工作中的任務運行。每個任務可以設置多個任務值,讓他們,或兩者兼而有之。每個任務的價值有一個獨特的關鍵在相同的任務。這種獨特的鍵被稱為任務值的關鍵。訪問一個任務價值任務名稱和值的關鍵。
顯示幫助subutility,運行dbutils.jobs.taskValues.help ()。
dbutils.jobs.taskValues.help ()
這個命令隻能Python。
10.4和更早的磚上運行時,如果得到找不到任務,Py4JJavaError提高而不是嗎ValueError。
得到
ValueError
被指定的內容任務指定的值在當前運行的工作。
顯示幫助這個命令,運行dbutils.jobs.taskValues.help (“”)。
dbutils.jobs.taskValues.help (“”)
例如:
dbutils。工作。taskValues。得到(taskKey=“我的任務”,\關鍵=“我的鑰匙”,\默認的=7,\debugValue=42)
在前麵的例子:
taskKey任務的名稱,設置任務的價值。如果命令無法找到這個任務,ValueError是提高。
taskKey
關鍵任務的名稱值的鍵設置設置命令(dbutils.jobs.taskValues.set)。如果命令無法找到這個任務價值的關鍵ValueError提高(除非默認的指定)。
關鍵
默認的
默認的返回的是一個可選值,如果關鍵不能被發現。默認的不能沒有一個。
沒有一個
debugValue返回的是一個可選值,如果你試圖從內部獲得任務價值之外的筆記本運行工作。這可能是有用的在調試手動當你想運行你的筆記本並返回一個值而不是提高TypeError默認情況下。debugValue不能沒有一個。
debugValue
TypeError
如果你想獲得一個任務的價值在一個筆記本運行之外的工作,這個命令了TypeError默認情況下。然而,如果debugValue參數中指定的命令,的價值debugValue返回而不是撫養TypeError。
設置或更新任務的價值。您可以設置250任務值工作運行。
一些例子包括:
dbutils。工作。taskValues。集(關鍵=“我的鑰匙”,\價值=5)dbutils。工作。taskValues。集(關鍵=“my-other-key”,\價值=“我的其他值”)
關鍵是任務價值的關鍵。這個鍵必須是唯一的任務。也就是說,如果兩個不同的任務設置一個與關鍵任務的價值K,這是兩種不同的任務具有相同鍵值K。
K
價值是這個任務的價值價值的關鍵。該命令必須能夠代表內部以JSON格式的值。價值的JSON表示的大小不能超過48簡約。
價值
如果你想設置一個任務值從一個筆記本內部運行之外的工作,這個命令沒有。
圖書館事業是棄用。
命令:安裝,installPyPI,列表,restartPython,updateCondaEnv
圖書館實用程序允許您安裝Python庫和創造一個環境筆記本會話作用域。圖書館對司機和執行者都是可用的,所以你可以在用戶定義函數中引用它們。這使得:
庫依賴關係的筆記本是筆記本內部組織。
筆記本用戶提供不同的庫依賴關係來分享一個集群沒有幹擾。
分離一個筆記本破壞了這個環境。然而,你可以通過重新運行庫重新創建它安裝API命令在筆記本上。看到restartPythonAPI如何重置你的筆記本狀態而不喪失您的環境。
安裝
restartPython
圖書館事業是不可以在磚運行時毫升或磚運行時對基因組學。相反,看到Notebook-scoped Python庫。
磚運行時的7.2及以上,磚推薦使用%皮普神奇的命令安裝notebook-scoped庫。看到Notebook-scoped Python庫。
%皮普
圖書館事業是默認啟用。因此,默認情況下每個筆記本孤立使用的Python環境創建一個單獨的Python可執行,當筆記本連接到集群和繼承默認Python環境。庫安裝在一個init腳本到磚Python環境中仍然可用。你可以禁用這個特性通過設置spark.databricks.libraryIsolation.enabled來假。
spark.databricks.libraryIsolation.enabled
假
這個API兼容現有的集群範圍的圖書館通過安裝用戶界麵和REST API。通過這個API庫安裝更高的優先級比整個集群範圍的庫。
列出可用的命令,運行dbutils.library.help ()。
dbutils.library.help ()
安裝(路徑:字符串):布爾- >安裝庫在當前會話installPyPI筆記本(pypiPackage:字符串,版本:字符串= " ",回購:字符串= " ",臨時演員:字符串= " "):布爾- >安裝PyPI圖書館在當前筆記本會話列表:列表- >隔離庫添加當前筆記本會話通過dbutils restartPython:空白- >啟動python程序當前筆記本會話updateCondaEnv (envYmlContent: String):布爾- >更新當前筆記本Conda環境規範(內容的基礎上的環境
對於一個給定路徑的庫,安裝,圖書館在當前筆記本會話。庫安裝通過調用這個命令隻提供給當前的筆記本。
顯示幫助這個命令,運行dbutils.library.help(“安裝”)。
dbutils.library.help(“安裝”)
這個例子中安裝一個.egg或.whl圖書館在一個筆記本上。
.egg
.whl
dbutils.library.install刪除在磚運行時11.0及以上。
dbutils.library.install
磚建議你把所有你的圖書館安裝命令的第一個細胞筆記本和電話restartPython最後的細胞。Python筆記本狀態複位後運行restartPython;筆記本失去所有國家包括但不限於局部變量,導入庫和其他臨時狀態。因此,我們建議您安裝庫和重置筆記本狀態第一個筆記本電池。
公認的圖書館資源dbfs和s3。
dbfs
s3
dbutils。圖書館。安裝(“dbfs: /道路/ /你/ library.egg”)dbutils。圖書館。restartPython()#刪除Python狀態,但一些庫可能不工作沒有調用這個命令。
dbutils。圖書館。安裝(“dbfs: /道路/ /你/ library.whl”)dbutils。圖書館。restartPython()#刪除Python狀態,但一些庫可能不工作沒有調用這個命令。
你可以直接安裝使用自定義輪文件%皮普。在下麵的例子中,我們假設您已經上傳你的圖書館輪DBFS文件:
%皮普安裝/dbfs/路徑/來/你的/圖書館。whl
蛋皮普不支持的文件,車輪被認為是標準的構建和二進製為Python包裝。看到輪與蛋為更多的細節。然而,如果您想要使用一個雞蛋文件的兼容%皮普,您可以使用以下方法:
#這一步是隻需要如果沒有% pip命令運行。#將觸發設置隔離的筆記本電腦環境%皮普安裝<任何- - - - - -自由>#這並不需要一個真正的圖書館;例如“% pip安裝any-lib”工作
進口sys#如果前麵的步驟已經完成,下麵的命令#將雞蛋文件添加到當前的筆記本電腦環境sys。路徑。附加(“/地方/道路/ / library.egg”)
給定一個Python包指數(PyPI)包,安裝,包在當前筆記本會話。通過調用這個命令庫安裝在筆記本電腦中孤立。
顯示幫助這個命令,運行dbutils.library.help (“installPyPI”)。
dbutils.library.help (“installPyPI”)
這個示例安裝PyPI包在一個筆記本上。版本,回購,臨時演員是可選的。使用臨時演員參數指定額外的功能(額外的需求)。
版本
回購
臨時演員
dbutils。圖書館。installPyPI(“pypipackage”,版本=“版本”,回購=“回購”,臨時演員=“臨時演員”)dbutils。圖書館。restartPython()#刪除Python狀態,但一些庫可能不工作沒有調用這個命令。
dbutils.library.installPyPI刪除在磚運行時11.0及以上。
dbutils.library.installPyPI
的版本和臨時演員鑰匙不能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解釋器自動重啟。您可以運行安裝命令如下:
%皮普安裝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筆記本。例如,您可以使用這種技術來重新加載庫磚預裝有不同的版本:
dbutils。圖書館。installPyPI(“numpy”,版本=“1.15.4”)dbutils。圖書館。restartPython()
#確保你在另一個細胞開始使用圖書館。進口numpy
您還可以使用該技術安裝庫tensorflow等需要加載過程啟動:
dbutils。圖書館。installPyPI(“tensorflow”)dbutils。圖書館。restartPython()
#使用圖書館在另一個細胞。進口tensorflow
列出當前筆記本的隔離庫添加會話通過圖書館實用工具。這並不包括庫連接到集群。
顯示幫助這個命令,運行dbutils.library.help(“列表”)。
dbutils.library.help(“列表”)
這個例子中列出了庫安裝在一個筆記本。
dbutils。圖書館。列表()
這個命令使用%皮普是:
%皮普凍結
重新啟動Python當前筆記本會話的過程。
顯示幫助這個命令,運行dbutils.library.help (“restartPython”)。
dbutils.library.help (“restartPython”)
這個例子中重新啟動Python當前筆記本會話的過程。
dbutils。圖書館。restartPython()#刪除Python狀態,但一些庫可能不工作沒有調用這個命令。
更新當前筆記本的Conda環境內容的基礎上environment.yml。這種方法隻對Conda磚運行時支持。
environment.yml
顯示幫助這個命令,運行dbutils.library.help (“updateCondaEnv”)。
dbutils.library.help (“updateCondaEnv”)
這個例子更新當前筆記本的Conda環境基於提供的內容規範。
dbutils。圖書館。updateCondaEnv(”“”渠道:——水蟒依賴關係:——gensim = 3.4——nltk = 3.4”“”)
命令:退出,運行
筆記本實用程序允許您鏈一起筆記本和行動的結果。看到運行一個磚筆記本從另一個筆記本。
列出可用的命令,運行dbutils.notebook.help ()。
dbutils.notebook.help ()
退出(價值:字符串):空白- >這個方法讓你退出一個筆記本和一個值運行(路徑:字符串,timeoutSeconds: int參數:地圖):String - >這個方法運行一個筆記本和返回退出值。
退出一個筆記本和一個值。
顯示幫助這個命令,運行dbutils.notebook.help(“退出”)。
dbutils.notebook.help(“退出”)
這個例子中退出的筆記本的價值退出從我的其他筆記本。
退出從我的其他筆記本
dbutils。筆記本。退出(“從我的其他筆記本退出”)從我的其他筆記本筆記本退出:退出
dbutils.notebook.exit(“從我的其他筆記本退出”)從我的其他筆記本筆記本退出:退出
dbutils。筆記本。退出(“從我的其他筆記本退出”)/ /筆記本退出:退出從我其他的筆記本
如果運行一個查詢結構化流在後台運行,調用dbutils.notebook.exit ()不終止運行。的運行將繼續執行,隻要查詢是在後台執行。你可以停止點擊查詢在後台運行取消在查詢的細胞或通過運行query.stop ()。當查詢停止,你可以終止運行dbutils.notebook.exit ()。
dbutils.notebook.exit ()
query.stop ()
運行一個筆記本和返回退出值。筆記本電腦會默認在當前集群運行。
返回的字符串值的最大長度運行命令5 MB。得到的輸出一個運行(得到/ /運行/輸出工作)。
運行
得到/ /運行/輸出工作
顯示幫助這個命令,運行dbutils.notebook.help(“運行”)。
dbutils.notebook.help(“運行”)
這個例子中運行一個筆記本我的其他筆記本在相同的位置調用筆記本。被調用的筆記本以行代碼dbutils.notebook.exit(“退出從我的其他筆記本”)。如果被調用的筆記本沒有完成60秒內運行,就會拋出一個異常。
我的其他筆記本
dbutils.notebook.exit(“退出從我的其他筆記本”)
dbutils。筆記本。運行(“我的其他筆記本”,60)#出[14]:“從我的其他筆記本的退出
dbutils。筆記本。運行(“我的其他筆記本”,60)/ /它:字符串=退出從我其他筆記本
命令:得到,getBytes,列表,listScopes
秘密實用程序允許您存儲和訪問敏感的憑據信息不可見筆記本。看到保密管理和在一個筆記本使用的秘密。列出可用的命令,運行dbutils.secrets.help ()。
dbutils.secrets.help ()
get(範圍:字符串,關鍵:字符串):String - >獲取字符串表示的秘密值範圍和關鍵getBytes(範圍:字符串、關鍵:String): byte[] - >獲得的字節表示一個秘密值範圍和鍵列表(範圍:字符串):Seq - >列表秘密秘密listScopes範圍內的元數據:Seq - >秘密範圍列表
得到一個秘密值的字符串表示指定範圍和關鍵的秘密。
管理員、秘密的創造者和使用者許可可以讀取數據磚的秘密。雖然磚使努力修訂秘密值會顯示在筆記本電腦中,這是不可能阻止這樣的用戶閱讀的秘密。有關更多信息,請參見秘密的修訂。
顯示幫助這個命令,運行dbutils.secrets.help (“”)。
dbutils.secrets.help (“”)
這個例子中得到的字符串表示的秘密值範圍我的領域和關鍵命名我的鑰匙。
我的領域
我的鑰匙
dbutils。秘密。得到(範圍=“我的領域”,關鍵=“我的鑰匙”)#[14]:“[編輯]”
dbutils.secrets.get(範圍=“我的領域”,關鍵=“我的鑰匙”)#[1]”(修訂)”
dbutils。秘密。得到(範圍=“我的領域”,關鍵=“我的鑰匙”)/ / res0:字符串=(修訂)
被指定的字節表示一個秘密值範圍和關鍵。
顯示幫助這個命令,運行dbutils.secrets.help (“getBytes”)。
dbutils.secrets.help (“getBytes”)
這個例子的字節表示的秘密值(在本例中,a1 ! b2@c3 #)命名的範圍我的領域和關鍵命名我的鑰匙。
a1 ! b2@c3 #
dbutils。秘密。getBytes(範圍=“我的領域”,關鍵=“我的鑰匙”)# [1]:b 'a1 ! b2@c3 #”
dbutils.secrets.getBytes(範圍=“我的領域”,關鍵=“我的鑰匙”)31 # [1]61 21 62 32 40 63 33 23
dbutils。秘密。getBytes(範圍=“我的領域”,關鍵=“我的鑰匙”)/ / res1:數組(字節)=數組(97年,49歲,33歲,98年,50歲,64年,99年,51歲,35)
列出的元數據指定範圍內的秘密。
顯示幫助這個命令,運行dbutils.secrets.help(“列表”)。
dbutils.secrets.help(“列表”)
這個例子中列出的元數據指定範圍內的秘密我的領域。
dbutils。秘密。列表(“我的領域”)# [10]:[SecretMetadata(關鍵= '我的鑰匙'))
dbutils.secrets.list(“我的領域”)# ([1])#美元[[1]]鍵#[1]“我的鑰匙”
dbutils。秘密。列表(“我的領域”)/ /它:Seq [com.databricks.dbutils_v1。SecretMetadata] = ArrayBuffer (SecretMetadata(鑰匙)
列出了可用的範圍。
顯示幫助這個命令,運行dbutils.secrets.help (“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(我的領域)
命令:組合框,下拉,得到,getArgument,多選,刪除,removeAll,文本
widget工具允許您參數化筆記本。看到磚小部件。
列出可用的命令,運行dbutils.widgets.help ()。
dbutils.widgets.help ()
組合框(名稱:字符串,defaultValue:字符串,選擇:Seq,標簽:字符串):空白- >創建一個組合框輸入小部件與給定的名稱,默認值和選擇下拉(名稱:字符串,defaultValue:字符串,選擇:Seq,標簽:字符串):空白- >創建一個下拉輸入小部件與給定的名稱,默認值和選擇(名稱:字符串):String - >檢索當前值輸入小部件getArgument(名稱:字符串,可選:String): String - >(棄用)相當於multiselect(名稱:字符串,defaultValue:字符串,選擇:Seq,標簽:字符串):空白- >創建一個選擇與給定的名稱輸入小部件、默認值和選擇刪除(名稱:字符串):空白- >從筆記本中刪除一個輸入小部件removeAll:空白- >刪除所有部件在筆記本上文本(名稱:字符串,defaultValue:字符串,標簽:字符串):空白- >創建一個文本輸入小部件與給定名稱和默認值
創建並顯示一個下拉列表框小部件指定項目名稱,默認值,選擇,可選的標簽。
顯示幫助這個命令,運行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”))#[1]“籃球”
dbutils。小部件。下拉(“toys_dropdown”,“籃球”,數組(“字母積木”,“籃球”,“角”,“娃娃”),“玩具”)打印(dbutils。小部件。得到(“toys_dropdown”))/ /籃球
被小部件的當前值與指定的程序的名字。這編程式名稱可以是:
在筆記本上一個自定義小部件的名稱,例如fruits_combobox或toys_dropdown。
自定義參數的名稱傳遞給筆記本作為筆記本的一部分任務,例如的名字或年齡。有關更多信息,請參見筆記本電腦參數的報道任務創建一個工作UI或notebook_params字段引發新工作運行(帖子/工作/運行API)操作的工作。
的名字
年齡
notebook_params
帖子/工作/運行
顯示幫助這個命令,運行dbutils.widgets.help (“”)。
dbutils.widgets.help (“”)
這個例子中得到的值小部件的編程的名字fruits_combobox。
dbutils。小部件。得到(“fruits_combobox”)#香蕉
dbutils.widgets.get(“fruits_combobox”)#[1]“香蕉”
dbutils。小部件。得到(“fruits_combobox”)/ / res6:字符串=香蕉
這個例子得到筆記本任務參數的值,程序名稱年齡。這個參數設置為35當相關的筆記本任務運行。
35
dbutils。小部件。得到(“年齡”)# 35
dbutils.widgets.get(“年齡”)# [1]“35”
dbutils。小部件。得到(“年齡”)/ / res6:字符串= 35
被小部件的當前值與指定的程序的名字。如果小部件不存在,可以返回一個可選的消息。
這個命令是棄用。使用dbutils.widgets.get代替。
顯示幫助這個命令,運行dbutils.widgets.help (“getArgument”)。
dbutils.widgets.help (“getArgument”)
這個例子中得到的值小部件的編程的名字fruits_combobox。如果這個部件不存在,該消息錯誤:不能找到水果組合框返回。
錯誤:不能找到水果組合框
dbutils。小部件。getArgument(“fruits_combobox”,錯誤:找不到水果組合框的)#棄用警告:使用dbutils.widgets.text()或dbutils.widgets.dropdown()來創建一個小部件和dbutils.widgets.get()來獲得它的價值。#[3]:“香蕉”
dbutils.widgets.getArgument(“fruits_combobox”,錯誤:找不到水果組合框的)#棄用警告:使用dbutils.widgets.text()或dbutils.widgets.dropdown()來創建一個小部件和dbutils.widgets.get()來獲得它的價值。#[1]“香蕉”
dbutils。小部件。getArgument(“fruits_combobox”,“錯誤:找不到水果組合框”)/ / command-1234567890123456:1:警告:方法在特征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”))/ /輸入你的名字
加速應用程序開發,它可以幫助編譯、構建、部署和測試應用程序之前生產工作。使你對磚實用程序的編譯,磚提供dbutils-api圖書館。你可以下載dbutils-api圖書館的DBUtils API在Maven存儲庫網站或網頁包括圖書館通過添加一個依賴你的構建文件:
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存儲庫網站上網頁。
目標
2.12
0.0.5
一旦你對這個庫構建應用程序,您可以部署應用程序。
的dbutils-api圖書館允許您在本地編譯的應用程序使用dbutils,但不能運行它。要運行應用程序,您必須將它部署在磚。
調用dbutils內部執行人可以產生意想不到的結果或可能導致錯誤。
如果你需要運行文件係統操作執行器使用dbutils,有幾個更快和更可伸縮的選擇:
對於文件複製或移動操作,您可以檢查運行的更快的選擇文件係統操作中描述並行化文件係統操作。
對於文件係統列出和刪除操作,可以參考清單和delete方法利用平行火花如何在磚和刪除文件列表更快。
執行人的信息,請參閱集群模式概述在Apache火花網站上。