使用筆記本電腦
您可以使用Databricks筆記本開發數據科學和機器學習工作流程,並與來自工程、數據科學、機器學習和BI團隊的同事進行協作。Databricks筆記本提供實時協同創作和自動版本控製。
您可以使用Python、SQL、Scala和R在Databricks筆記本中工作,並使用您選擇的庫自定義您的環境。Databricks筆記本還提供內置的數據可視化和自動版本控製。您可以安排筆記本自動運行工作流。您可以導出結果和筆記本在. html
或.ipynb
格式化、構建和共享儀表板。
在筆記本電腦發展
筆記本電腦使用兩種類型的單元格:代碼單元格和標記單元格。代碼單元格包含可運行的代碼。Markdown單元格包含在執行單元格時呈現為文本和圖形的標記代碼。您可以單獨運行每個單元格,也可以一次運行整個筆記本。
筆記本工具欄包括菜單和圖標,您可以使用它們來管理和編輯筆記本。
在筆記本名稱旁邊是按鈕,讓您更改筆記本的默認語言而且,如果筆記本電腦包含在Databricks回購協議中,打開Git對話框.
查看以前的版本點擊菜單右側的“最後編輯…”信息。
右邊圖標的說明如下表所示:
圖標 |
描述 |
---|---|
開放MLflow筆記本實驗. |
|
開放筆記本的評論. |
|
開放集群選擇器.此按鈕的名稱根據筆記本和集群狀態而更改。 |
|
開放作業調度器. |
|
開放三角洲生活表.隻有當筆記本是Delta Live Tables管道的一部分時,才會出現此按鈕。 |
|
開放權限對話框. |
細胞的行為菜單允許您剪切、複製和粘貼單元格,在筆記本中移動單元格,向單元格添加標題,以及隱藏代碼或結果。
從這個菜單中,你也可以運行代碼單元格:
隱藏單元格的菜單項或者刪除一個單元格也出現。
對於Markdown單元格,會出現一個將單元格添加到儀表板的選項。有關更多信息,請參見指示板.
處理細胞
當您刪除單元格時,默認情況下會出現一個刪除確認對話框。若要禁用將來的確認對話框,請選擇不要再放一遍複選框,然後單擊確認.控件切換確認對話框設置打開命令刪除確認選項用戶設置.
重要的
筆記本單元格(包括內容和輸出)的最大大小是16MB。
創建、剪切、複製和粘貼單元格
若要創建新單元格,請將鼠標懸停在頂部或底部的單元格上並單擊圖標。您也可以使用筆記本單元格菜單:單擊並選擇添加細胞上麵或添加下麵的細胞.
有幾個選項可以剪切和複製單元格:
使用單元格操作菜單在單元格的右邊。點擊並選擇減少細胞或複製單元格.
使用鍵盤快捷鍵:
Command-X
或Ctrl-X
削減和Command-C
或ctrl - c
複製。使用編輯筆記本頂部的菜單。選擇減少或複製.
在您剪切或複製單元格之後,您可以將這些單元格粘貼到筆記本中的其他地方,粘貼到另一個筆記本中,或者粘貼到另一個瀏覽器選項卡或窗口中的筆記本中。要粘貼單元格,請使用鍵盤快捷鍵command (ctrl)加v鍵
或ctrl - v
.單元格被粘貼在當前單元格的下方。
你可以使用鍵盤快捷鍵Command-Z
或ctrl - z
撤銷剪切或粘貼操作。
請注意
如果您正在使用Safari,則必須使用鍵盤快捷鍵。
單擊,剪切並粘貼單元格從單元格操作菜單中選擇減少細胞.然後,選擇粘貼上麵或粘貼下麵從另一個單元格的單元格操作菜單中。
您可以使用恢複被切割的單元格編輯>撤銷剪切單元格.
要選擇相鄰的單元格,請單擊Markdown單元格,然後使用轉變+向上或下來以選擇其上方或下方的單元格。使用編輯菜單複製、剪切、粘貼或刪除所選單元格作為一個組。要選擇所有單元格,請選擇編輯>選擇所有單元格或者使用命令模式快捷方式Cmd +一個.
混合語言
默認情況下,單元格使用筆記本的默認語言。您可以通過單擊語言按鈕並從下拉菜單中選擇一種語言來覆蓋單元格中的默認語言。
您也可以使用language magic命令% > <語言
在細胞的開始。支持的magic命令有:% python
,r %
,% scala
,%的sql
.
請注意
調用語言魔術命令時,該命令被分派到執行上下文的筆記本。在一種語言(因此在該語言的REPL中)中定義的變量在另一種語言的REPL中不可用。reps隻能通過外部資源(如DBFS中的文件或對象存儲中的對象)共享狀態。
筆記本還支持一些輔助魔法命令:
% sh
:允許您在筆記本中運行shell代碼。若要在shell命令有非零退出狀態時使單元失敗,請添加- e
選擇。該命令隻在Apache Spark驅動程序上運行,而不是在worker上運行。若要在所有節點上運行shell命令,請使用init腳本.% fs
:允許使用dbutils
文件係統命令。例如,要運行dbutils.fs.ls
命令列出可以指定的文件% fsls
代替。有關更多信息,請參見如何處理數據庫上的文件.%醫學博士
:允許您包含各種類型的文檔,包括文本、圖像、數學公式和方程。請參閱下一節。
使用Python本機探索Python筆記本中的SQL單元格結果
您可能希望使用SQL加載數據,並使用Python研究它。在Databricks Python筆記本中,SQL語言單元格的表結果會自動作為Python數據幀提供。Python數據幀的名稱是_sqldf
.
請注意
在Python筆記本中,DataFrame
_sqldf
不會自動保存,而是替換為最近SQL單元格運行的結果。要保存DataFrame,請在Python單元格中運行以下代碼:new_dataframe_name=_sqldf
如果查詢使用小部件對於參數化,結果不能作為Python DataFrame提供。
如果查詢使用關鍵字
緩存表格
或UNCACHE表格
,結果不能作為Python DataFrame。
截圖顯示了一個例子:
Python命令中的SQL語法高亮顯示和自動完成
語法高亮顯示和SQL自動完成在Python命令中使用SQL時可用,例如spark.sql
命令。
文檔代碼
您可以通過選擇創建標記單元格來記錄代碼減價單元格的語言按鈕或使用%醫學博士
神奇的命令。單元格的內容被渲染成HTML。例如,這個代碼片段包含一級標題的標記:
這是一個標題
它被渲染成一個HTML標題:
可折疊的標題
包含Markdown標題的單元格之後出現的單元格可以折疊成標題單元格。下麵的圖像顯示了一級標題稱為標題1隨著下麵兩個細胞的塌陷。
要展開和折疊標題,請單擊+而且-.
也看到隱藏和顯示單元格內容.
要在整個筆記本中展開或折疊包含減價標題的單元格之後的單元格,請選擇崩潰所有標題從視圖菜單。
鏈接到其他筆記本
您可以使用相對路徑鏈接到Markdown單元格中的其他筆記本或文件夾。指定href
屬性作為相對路徑,以$
然後遵循Unix文件係統中相同的模式:
% md < a href = " $。/myNotebook">Link to notebook in same folder as current notebook Link to folder in parent folder of current notebook Link to nested notebook
顯示圖像
來顯示存儲在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
必須從您的瀏覽器訪問。如果它目前被您的公司網絡屏蔽,則必須將其添加到允許列表中。
命令的評論
您可以使用命令注釋與協作者進行討論。
若要切換Comments側欄,請單擊評論在筆記本右上方的圖標。
向命令中添加注釋。
突出顯示命令文本並單擊注釋氣泡:
添加您的評論並單擊評論.
要編輯、刪除或回複評論,請單擊評論並選擇操作。
顯示行號和命令號
若要顯示或隱藏行號或命令號,請選擇行號或命令數量從視圖菜單。對於行號,也可以使用鍵盤快捷鍵控製+ L.
如果啟用行號或命令號,Databricks將保存您的首選項,並在該瀏覽器的所有其他筆記本中顯示它們。
單元格上方的命令編號鏈接到特定的命令。如果您單擊單元格的命令號,它將更新您的URL以錨定到該命令。如果要鏈接到筆記本中的特定命令,請右鍵單擊命令號並選擇複製鏈接地址.
查找並替換文本
要查找和替換筆記本中的文本,請選擇編輯>查找和替換.當前比賽用橙色突出顯示,所有其他比賽用黃色突出顯示。
單擊,替換當前匹配項取代.若要替換筆記本中的所有匹配項,請單擊替換所有.
要在匹配之間移動,請單擊上一頁而且下一個按鈕。你也可以按shift + enter而且輸入分別進入上一場和下一場比賽。
單擊,關閉查找並替換工具或按esc.
自動完成
您可以使用Databricks自動完成在您鍵入代碼段時自動完成它們。Databricks支持兩種類型的自動完成:本地和服務器。
本地自動補全將完成筆記本中定義的單詞。服務器自動完成訪問集群以獲得已定義的類型、類和對象,以及SQL數據庫和表名。要激活服務器自動完成,將你的筆記本連接到集群上而且運行所有細胞定義了可完成對象。
重要的
R筆記本中的服務器自動完成在命令執行時被阻塞。
要觸發自動完成,按選項卡在輸入一個可完成的對象之後。的定義和運行單元格之後,例如MyClass
而且實例
的方法。實例
是可完成的,並且當您按下時顯示有效的完成列表選項卡.
SQL數據庫和表名稱補全、類型補全、語法高亮顯示和SQL自動補全可在SQL單元格中使用,也可在Python命令中使用SQLspark.sql
命令。
- - - - - - - - - - - -
在Databricks Runtime 7.4及以上版本中,您可以通過按一下鍵來顯示Python文檔字符串提示Shift + Tab在輸入一個完整的Python對象之後。文檔字符串包含與幫助()
函數。
筆記本電腦運行
在運行筆記本上的任何單元格之前,必須將筆記本連接到集群上.
要運行筆記本中的所有單元格,請選擇運行所有在筆記本工具欄中。
重要的
不要使用運行所有如果步驟安裝和卸載都在同一個筆記本裏。這可能導致競爭狀況,並可能破壞坐騎點。
要運行單個單元格,請在單元格中單擊並按shift + enter.
若要在單元格之前或之後運行所有單元格,請使用單元格操作菜單在最右邊。點擊並選擇運行以上或運行所有下麵.運行所有下麵包括你所在的單元格;運行以上沒有。
當筆記本正在運行時,筆記本選項卡中的圖標從來.如果在瀏覽器中啟用了通知,並且在筆記本運行時導航到另一個選項卡,則在筆記本運行結束時出現通知。
把一個筆記本附在集群上
要將筆記本附加到集群,您需要是否可以附加到集群級別的權限.
重要的
的任何用戶隻要將筆記本連接到集群,就可以使用可以運行權限的筆記本具有訪問集群的隱式權限。
把筆記本附在…上集群,單擊記事本工具欄中的集群選擇器,並從下拉菜單中選擇一個集群。該菜單顯示了您最近使用過或當前正在運行的集群的選擇。
單擊可從所有可用的集群中進行選擇更多…並從對話框中的下拉菜單中選擇一個現有的集群。
你也可以創建一個新的集群通過選擇創建新的資源……從下拉菜單。
重要的
附帶的筆記本中定義了以下Apache Spark變量。
類 |
變量名 |
---|---|
|
|
|
|
|
|
不要創建SparkSession
,SparkContext
,或SQLContext
.這樣做會導致不一致的行為。
從集群中分離一個筆記本
要將筆記本與集群分離,請單擊筆記本工具欄中的集群選擇器,並將鼠標懸停在列表中附加的集群上以顯示側邊菜單。從側邊菜單中選擇分離.
方法還可以將筆記本從集群中分離筆記本電腦頁簽。
將筆記本從集群中分離時,會出現執行上下文移除,所有計算的變量值將從筆記本中清除。
提示
Databricks建議您從集群中分離未使用的筆記本。這將釋放驅動程序上的內存空間。
查看每個單元格的多個輸出
Python筆記本和% python
非python筆記本中的單元格支持每個單元格的多個輸出。例如,以下代碼的輸出包括圖表和表格:
進口熊貓作為pd從sklearn.datasets進口load_iris數據=load_iris()虹膜=pd.DataFrame(數據=數據.數據,列=數據.feature_names)斧頭=虹膜.情節()打印(“陰謀”)顯示(斧頭)打印(“數據”)顯示(虹膜)
在Databricks Runtime 7.3 LTS中,必須通過設置啟用此特性spark.databricks.workspace.multipleResults.enabled真正的
.
Python和Scala錯誤突出顯示
Python和Scala筆記本支持錯誤高亮顯示。拋出錯誤的代碼行在單元格中突出顯示。此外,如果錯誤輸出是堆棧跟蹤,拋出錯誤的單元格將作為到該單元格的鏈接顯示在堆棧跟蹤中。您可以單擊此鏈接跳到有問題的代碼。
通知
通知向您提醒某些事件,例如當前正在運行哪個命令筆記本電腦運行以及哪些命令處於錯誤狀態。當你的筆記本顯示多個錯誤通知時,第一個通知將有一個鏈接,允許你清除所有通知。
筆記本通知默認是啟用的。您可以禁用它們用戶設置.
磚顧問
Databricks Advisor在每次運行命令時自動分析命令,並在筆記本中顯示適當的建議。通知通知提供的信息可以幫助您改進工作負載的性能、降低成本和避免常見錯誤。
視圖的建議
帶有燈泡圖標的藍色方框表示可以為命令提供通知。該框顯示了不同建議的數量。
單擊燈泡以展開方框並查看通知。一個或多個建議將變得可見。
單擊了解更多鏈接到查看提供與通知相關的更多信息的文檔。
單擊別再給我看這個了鏈接隱藏這條建議。此類型的通知將不再顯示。此操作可以是筆記本設置反轉.
再次單擊燈泡以折疊通知框。
建議設置
要啟用或禁用Databricks Advisor,請轉到用戶設置或者單擊展開的建議框中的齒輪圖標。
切換的打開Databricks Advisor選項啟用或禁用通知。
的重置隱藏的建議如果當前隱藏了一個或多個通知類型,則顯示Link。單擊該鏈接可使通知類型再次可見。
打開或運行Delta Live Tables管道
對於分配給Delta Live Tables管道的筆記本,可以打開管道的細節,開始管道更新,或使用三角洲生活表筆記本工具欄中的下拉菜單。
單擊,打開管道詳細信息三角洲生活表然後單擊管道名稱,或者單擊>管道視圖.
要開始更新管道,請單擊三角洲生活表並點擊開始在管道名稱旁邊。
單擊,刪除分配給筆記本的管道Delta Live Tables >>刪除.
管理筆記本狀態和輸出
在你把一個筆記本附在集群上而且運行一個或多個單元,你的筆記本有狀態並顯示輸出。介紹如何管理筆記本電腦的狀態和輸出。
在本節中:
顯示結果
當一個單元格運行時,Databricks返回1000行數據幀。在Databricks Runtime 8.4及以上版本中,如果有超過1000行,您可以重新執行查詢,以顯示最多10,000行。
下載結果
默認情況下,下載結果是啟用的。要切換此設置,請參見管理從筆記本上下載結果的能力.
可以將包含表格輸出的單元格結果下載到本地計算機。單擊選項卡標題旁邊的三個按鈕菜單。菜單選項取決於結果中的行數和Databricks Runtime版本。下載的結果以CSV文件的形式保存在本地計算機上export.csv
.
隱藏和顯示單元格內容
單元格內容由單元格代碼和運行單元格的結果組成。您可以使用單元格操作菜單隱藏和顯示單元格代碼和結果在單元格的右上角。
隱藏單元格代碼:
點擊並選擇隱藏代碼
要隱藏並顯示單元格結果,請執行以下任一操作:
點擊並選擇隱藏的結果
選擇
類型Esc > Shift + o
要顯示隱藏的單元格代碼或結果,請單擊顯示鏈接:
另請參閱可折疊的標題.
筆記本隔離
筆記本隔離指的是筆記本之間變量和類的可見性。Databricks支持兩種類型的隔離:
變量和類的隔離
火花會話隔離
請注意
Databricks管理用戶隔離使用集群上配置的訪問方式.
任何隔離共享:多個用戶可以使用同一個集群。用戶共享在集群級別設置的憑據。不實施數據訪問控製。
單用戶:隻有命名用戶可以使用集群。所有命令都以該用戶的特權運行。Hive metastore中的表acl不強製執行。此訪問模式支持Unity Catalog。
共享:多個用戶可以使用同一個集群。用戶之間完全隔離,每個用戶使用自己的特權運行命令。Hive metastore中的表acl是強製的。此訪問模式支持Unity Catalog。
變量和類的隔離
變量和類僅在當前筆記本中可用。例如,附加到同一個集群的兩個筆記本可以定義同名的變量和類,但這些對象是不同的。
定義對。可見的類所有筆記本都連接到同一個集群中定義類包細胞.然後,您可以通過使用它的完全限定名來訪問該類,這與訪問附加的Scala或Java庫中的類相同。
火花會話隔離
每個連接到運行Apache Spark 2.0.0及以上版本的集群的筆記本都有一個預定義的變量,名為火花
表示一個SparkSession
.SparkSession
是使用Spark api以及設置運行時配置的入口點。
Spark會話隔離默認開啟。你也可以用全球在筆記本之間共享臨時視圖的臨時視圖。看到創建視圖.若要禁用Spark會話隔離,請設置spark.databricks.session.share
來真正的
在火花配置.
重要的
設置spark.databricks.session.share
True中斷了流筆記本單元格和流作業所使用的監視。具體地說:
觸發其他語言中的命令的單元格(即使用% scala
,% python
,r %
,%的sql
)和包含其他筆記本的單元格(即使用的單元格)運行%
)是當前筆記本電腦的一部分。因此,這些單元格與其他筆記本單元格處於同一會話中。相比之下,筆記本的工作流用一個孤立的SparkSession
,這意味著在這種筆記本中定義的臨時視圖是不可見的在其他筆記本。
版本曆史
Databricks筆記本維護筆記本版本的曆史記錄,允許您查看和恢複筆記本以前的快照。您可以對版本進行以下操作:添加注釋、恢複和刪除版本、清除版本曆史記錄。
要訪問筆記本版本,請單擊工具欄中的“最後編輯…”消息。筆記本版本出現在瀏覽器選項卡的右側。您也可以選擇>版本曆史.
Git版本控製
要將Databricks中的工作與遠程Git存儲庫同步,Databricks建議使用Git與Databricks Repos集成.
Databricks還支持將單個筆記本連接到基於git的版本控製工具:Git的筆記本版本控製(遺留)
測試筆記本
本節將介紹在Databricks筆記本中測試代碼的幾種方法。這些方法可以單獨使用,也可以一起使用。另請參閱筆記本的單元測試.
許多單元測試庫直接在筆記本中工作。例如,您可以使用內置的Python“unittest”包來測試筆記本代碼。
def反向(年代):返回年代(::-1]進口unittest類TestHelpers(unittest.TestCase):deftest_reverse(自我):自我.assertEqual(反向(“abc”),cba的)r=unittest.主要(argv=[”],冗長=2,退出=假)斷言r.結果.wasSuccessful(),“測試失敗;看到上麵的日誌
測試失敗出現在單元的輸出區域。
您可以使用小部件在一個筆記本中區分測試調用和普通調用。
要隱藏測試代碼和結果,請從單元格下拉菜單中選擇相關的菜單項。即使結果是隱藏的,也會出現任何錯誤。
要定期和自動運行測試,您可以使用預定的筆記本.您可以將作業配置為發送通知郵件到您指定的地址。
將測試代碼從筆記本中分離出來
要將測試代碼與被測試代碼分離,請參見在筆記本上分享代碼.
使用一個例子運行%
:
對象中存儲的代碼磚回購,您可以使用web終端在源代碼文件中運行測試,就像在本地計算機上運行測試一樣。
您也可以在筆記本上運行這個測試。
對於筆記本電腦磚回購,您可以通過配置為每次提交運行筆記本測試來設置CI/ cd風格的工作流。看到磚GitHub的行動.