Databricksノートブックのインタフェースとコントロール

[Databricks notebook interface and controls \| Databricks on AWS](https://docs.databricks.com/notebooks/notebook-ui.html) [2023/6/1時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

ノートブックツールバーには、ノートブックを管理、編集する際に使用できるアイコンが含まれています。
![](https://docs.databricks.com/_images/toolbar.png)
ノートブック名の隣にあるボタンでは、[ノートブックのデフォルト言語を変更](https://qiita.com/taka_yayoi/items/dfb53f63aed2fbd344fc#%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E8%A8%80%E8%AA%9E%E3%81%AE%E8%A8%AD%E5%AE%9A)することができ、ノートブックがDatabricksのリポジトリに格納されている場合には、[Gitダイアログを開く](https://docs.databricks.com/repos/git-operations-with-repos.html)ことができます。

ノートブックの[以前のバージョン](https://qiita.com/taka_yayoi/items/dfb53f63aed2fbd344fc#%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%B1%A5%E6%AD%B4)を参照するには、メニューの右にある`Last edit…`メッセージをクリックします。

# ノートブックツールバーのアイコンとボタン

ツールバーの右にあるアイコンとボタンを以下の表で説明しています。

| アイコン | 説明 |
|:--|:--|
| ![](https://docs.databricks.com/_images/nb-header-expt.png)  |  [MLflowノートブックエクスペリメント](https://qiita.com/taka_yayoi/items/ba0c7f46ff7c3dbf87bb#%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88)を開きます。 |
| ![](https://docs.databricks.com/_images/nb-header-comments.png)  | [ノートブックコメント](https://qiita.com/taka_yayoi/items/db5411d5862bfb01d1b9#%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%B8%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88)を開きます。  |
| ![](https://docs.databricks.com/_images/nb-run-all.png) ![](https://docs.databricks.com/_images/nb-interrupt-button.png) | [すべてのセルの実行、実行の停止](https://qiita.com/taka_yayoi/items/68a31fd49203d2c9e96f)。このボタンの名称はノートブックの実行状態に応じて変化します。  |
| ![](https://docs.databricks.com/_images/nb-header-cluster.png)  | [クラスターセレクター](#ノートブックをクラスターにアタッチ)を開きます。ノートブックがクラスターに接続されている場合、このボタンにはクラスター名が表示されます。  |
| ![](https://docs.databricks.com/_images/nb-header-job.png)  |  [ジョブスケジューラ](https://qiita.com/taka_yayoi/items/b3275a1983c51a8bbe1a)を開きます。 |
| ![](https://docs.databricks.com/_images/nb-header-dlt.png)  |  [Delta Live Tables](https://docs.databricks.com/notebooks/notebooks-dlt-pipeline.html)を開きます。このボタンは、ノートブックがDelta Live Tablesのパイプラインに含まれている場合にのみ表示されます。 |
| ![](https://docs.databricks.com/_images/nb-header-share.png)  | [アクセス権ダイアログ](https://qiita.com/taka_yayoi/items/2dd6711b7b254505e4a3#%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A8%A9%E8%A8%AD%E5%AE%9A)を開きます。  |

# 右側のサイドバーのアクション

以下の表で説明しているように、ノートブック右側のサイドバーからいくつかのアクションを行うことができます。

| アイコン | 説明 |
|:-:|:--|
| ![](https://docs.databricks.com/_images/nb-header-comments.png)  | [ノートブックコメント](https://qiita.com/taka_yayoi/items/db5411d5862bfb01d1b9#%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%B8%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88)を開きます。  |
| ![](https://docs.databricks.com/_images/nb-header-expt.png)  |  [MLflowノートブックエクスペリメント](https://docs.databricks.com/mlflow/experiments.html#mlflow-notebook-experiments)を開きます。 |
| ![](https://docs.databricks.com/_images/revision-history.png)  | [ノートブックバージョン履歴](https://qiita.com/taka_yayoi/items/dfb53f63aed2fbd344fc#%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%B1%A5%E6%AD%B4)を開きます。  |
| ![](https://docs.databricks.com/_images/variable-explorer-icon.png)  | [変数エクスプローラ](https://qiita.com/taka_yayoi/items/dfb53f63aed2fbd344fc#%E5%A4%89%E6%95%B0%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9)を開きます。(Databricksランタイム12.1以降のPython変数で利用できます。)  |

# データのブラウズ

:::note info
**プレビュー**
本機能は[パブリックプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。
:::

ノートブックで使用できるテーブルやボリュームを探索するためにスキーマブラウザを開くには、ノートブック右側の![](https://docs.databricks.com/_images/notebook-data-icon.png)をクリックします。詳細は[データのブラウズ](https://qiita.com/taka_yayoi/items/dfb53f63aed2fbd344fc#%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%BA)をご覧ください。

# セルのアクションメニュー

セルのアクションメニュー![](https://docs.databricks.com/_images/cell-actions.png)を用いることで、ノートブックのセルをカット、コピー、貼り付け、移動、セルにタイトルの追加、コードや結果の非表示を行うことができます。
![](https://docs.databricks.com/_images/cmd-edit.png)
このメニューからコードのセルを実行することもできます。
![](https://docs.databricks.com/_images/cell-actions-run.png)

マークダウンセルではダッシュボードにセルを追加するオプションが表示されます。詳細は[ダッシュボード](https://qiita.com/taka_yayoi/items/4b200d08ab3d0863d40a)をご覧ください。
![](https://docs.databricks.com/_images/cell-actions-dashboard.png)

# セルの作成

ノートブックでは2つのタイプのセルを使用します: コードのセルとマークダウンのセルです。コードのセルには実行可能なコードが含まれます。マークダウンのセルには、セルが実行された際にテキストや画像がレンダリングされるマークダウンコードが含まれており、ドキュメントやコードを説明するために使用することができます。

単一のセル、セルのグループ、一度にノートブック全体を実行することができます。ノートブックのセルの最大サイズはコンテンツ、出力共に16MBとなっています。

新規のセルを作成するには、セルの上端、下端にカーソルを移動し、![](https://docs.databricks.com/_images/add-cell.png)アイコンをクリックします。また、ノートブックセルメニューで![](https://docs.databricks.com/_images/down-caret.png)をクリックし、**Add Cell Above**か**Add Cell Below**を選択することもできます。

コードセルにおいては、単にセルにコードを入力します。マークダウンセルを作成するには、セルの言語ボタンから**Markdown**を選択するか、セルの上部に`%md`と入力します。マークダウンセルのコンテンツはHTMLとしてレンダリングされます。例えば、以下のスニペットはレベル1の見出しのマークアップです。

```md:Markdown
%md # Hello This is a Title
```

これはHTMLタイトルとしてレンダリングされます。
![](https://docs.databricks.com/_images/title.png)

# セルのカット、コピー、ペースト

セルをカット、コピーするにはいくつかの方法が存在します。

- 一番右のセルメニュー![](https://docs.databricks.com/_images/cell-actions.png)の![](https://docs.databricks.com/_images/down-caret.png)をクリックし、**Cut Cell**か**Copy Cell**を選択します。
- キーボードショートカットを使います。カットするには`Command-X`か`Ctrl-X`、コピーするには`Command-C`か`Ctrl-C`を使います。
- ノートブックの上部の**Edit**メニューを使います。**Cut current cell**か**Copy current cell**を選択します。

セルをコピーした後は、ノートブックの任意の場所、異なるノートブック、別のブラウザタブ、ウィンドウで開いているノートブックの好きな場所にこれらのセルを貼り付けることができます。セルを貼り付けるには、キーボードショートカット`Command-V`か`Ctrl-V`を使います。現在のセルの下にセルが貼り付けられます。

セルのカット、ペーストのアクションを取り消すには、キーボードショートカット`Command-Z`か`Ctrl-Z`を使用します。

:::note info
**注意**
Safariを使っている場合にはキーボードショートカットを使う必要があります。
:::

- セルをカットアンドペーストするには、セルアクションメニューで![](https://docs.databricks.com/_images/down-caret.png)をクリックし、**Cut Cell**を選択します。そして、別のセルのセルアクションメニューから**Paste Above**か**Paste Below**を選択します。

    **Edit > Undo Cut Cells**を用いてセルのカットを復旧することができます。

- 隣接するセルを選択するにはマークダウンセルをクリックし、上下のセルを選択するために**Shift + Up**か**Down**を使用します。グループとして選択されたセルをコピー、カット、ペースト、削除するために編集メニューを使用します。すべてのセルを選択するには、**Edit > Select All Cells**かコマンドモードのショートカット**Cmd+A**を使います。

# ノートブックの目次

自動で生成される目次を表示するには、ノートブックの左上(サイドバーと一番最初のセルの間)にある矢印をクリックします。目次はノートブックで作成されたマークダウンの見出しから生成されます。
![](https://docs.databricks.com/_images/open-toc-with-cursor.png)

目次を閉じるには、左向きの矢印をクリックします。
![](https://docs.databricks.com/_images/close-toc-with-cursor.png)

# セルの表示オプション

ノートブックには3つの表示オプションがあります。

- Standard view: 処理結果がコードセルの直後に表示されます。
- Results only: 処理結果のみが表示されます。
- Side-by-side: コードと処理結果が隣り合わせに表示されます。

表示オプションを選択するにはビューメニュー![](https://docs.databricks.com/_images/view-menu-icon.png)を使います。

# 行番号、コマンド番号

行番号、コマンド番号を表示するには、**View**メニューから**Show line numbers**、**Show command numbers**を選択します。行番号に関しては、キーボードショートカット**Control+L**で行番号の表示を切り替えることができます。

行番号、コマンド番号を表示させた場合には、Databricksは設定を保存し、ブラウザー上での他のノートブックにおいても表示するようにします。

セルの上にあるコマンド番号は、当該セルへのリンクとなっています。セルに対応するコマンド番号をクリックすると、URLが当該コマンドへのものに更新されます。特定のコマンドへのリンクを作成したい場合には、コマンド番号を右クリックして、**copy link address**を選択します。

# ダークモードでノートブックを参照

ノートブックをダークモードで表示することができます。ダークモードの表示を切り替えるには、**View > Notebook Theme**で**Light Theme**か**Dark Theme**を選択します。

# セルのコンテンツの表示、非表示

セルのコンテンツはセルのコードと実行した際の結果から構成されます。セルのコードと結果の表示・非表示を一番右のアクションメニュー![](https://docs.databricks.com/_images/cell-actions.png)から切り替えることができます。

セルコードを非表示にするには、

- ![](https://docs.databricks.com/_images/down-caret.png)をクリックし、**Hide Code**を選択します。

セルの処理結果の表示、非表示を切り替えるには以下のいずれかを行います。

- ![](https://docs.databricks.com/_images/down-caret.png)をクリックし、**Hide Result**を選択します。
- ![](https://docs.databricks.com/_images/cell-minimize.png)を選択します。
- **Esc > Shift + o**をタイプします。

非表示のセルコードや結果を表示するには、**Show**リンクをクリックします。
![](https://docs.databricks.com/_images/notebook-cell-show.png)

[見出しの折りたたみ](#見出しの折りたたみ)もご覧ください。

# 見出しの折りたたみ

マークダウンの見出しを含むセル以降のセルを見出しのセルに折り畳むことができます。以下の画像では、以降の2つのセルが折り畳まれた**Heading 1**というレベル1の見出しを示しています。
![](https://docs.databricks.com/_images/headings.png)

折り畳まれた見出しを展開、たたみ込むには**+**や**-**をクリックします。

[セルのコンテンツの表示、非表示](#セルのコンテンツの表示非表示)もご覧ください。

ノートブック全体でマークダウンの見出しを含むセル以降のセルを展開、たたみ込むには**View**メニューの**Collapse all headings**を選択します。

# ノートブックの計算リソース

このセクションでは、ノートブックの計算リソースのオプションをカバーします。[Databricksクラスター](https://qiita.com/taka_yayoi/items/c5d99cd77fe4bfcf69f0)でノートブックを実行することができ、SQLコマンドに関しては、SQL分析に最適化された計算リソースタイプである[SQLウェアハウス](https://qiita.com/taka_yayoi/items/23d7789198c2dcd66381)を使用するオプションもあります。

## ノートブックをクラスターにアタッチ

クラスターにノートブックをアタッチするには、[クラスターレベルでCan Attach権限](https://docs.databricks.com/security/access-control/cluster-acl.html#cluster-level-permissions)が必要となります。

:::note warn
**重要！**
ノートブックがクラスターにアタッチされている限り、[ノートブックに対するCan Run権限](https://qiita.com/taka_yayoi/items/2dd6711b7b254505e4a3#%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A8%A9)を持つすべてのユーザーはクラスターにアクセスできる暗黙的な権限を持つことになります。
:::

[クラスター](https://qiita.com/taka_yayoi/items/c5d99cd77fe4bfcf69f0)にノートブックをアタッチするには、ノートブックツールバーのクラスターセレクターをクリックし、ドロップダウンメニューからクラスターを選択します。メニューには最近使用したクラスターや稼働中のクラスターが一覧されます。
![](https://docs.databricks.com/_images/cluster-attach.png)

利用可能なすべてのクラスターから選択するには、**More…**をクリックし、ダイアログのドロップダウンメニューから既存のクラスターを選択します。
![](https://docs.databricks.com/_images/clusters-more.png)

また、ドロップダウンメニューから**Create new resource…** を選択することで[新規のクラスターを作成](https://qiita.com/taka_yayoi/items/d36a469a1e0c0cebaf1b)することができます。

:::note warn
**重要!**
アタッチされたノートブックでは、以下のApache Spark変数を利用できます。

| クラス | 変数名 |
|:--|:--|
|SparkContext   |sc   |
|SQLContext/HiveContext   |sqlContext   |
|SparkSession (Spark 2.x)   |spark   |

独自に`SparkSession`、`SparkContext`、`SQLContext`を作成しないでください。作成すると動作に一貫性がなくなります。
:::

## SQLウェアハウスでノートブックを使う

:::note info
**プレビュー**
本機能は[パブリックプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。
:::

SQLウェアハウスにノートブックがアタッチされている際、SQLとマークダウンのセルを実行することができます。他のすべてのセル(Python、R、その他の言語)は無視されます。SQLウェアハウスで実行されたSQLセルは[SQLウェアハウスのクエリー履歴](https://docs.databricks.com/sql/admin/query-history.html)に表示されます。

ノートブックの実行には[ProあるいはサーバレスのSQLウェアハウス](https://docs.databricks.com/sql/index.html#warehouse-types)が必要となります。ワークスペースとSQLウェアハウスへのアクセス権が必要です。

ノートブックを[SQLウェアハウス](https://qiita.com/taka_yayoi/items/23d7789198c2dcd66381)にアタッチするには、以下を実施します:

1. [ノートブックツールバーのコンピュートセレクター](#ノートブックツールバーのアイコンとボタン)をクリックします。ドロップダウンメニューに、現在実行中あるいは最近使用した計算資源が表示されます。SQLウェアハウスには`SQL`というマークがついています。
1. メニューからSQLウェアハウスを選択します。

    利用可能なすべてのSQLウェアハウスを参照するには、ドロップダウンから **More...** を選択します。ノートブックから利用できるす計算リソースを表示するダイアログが表示されます。**SQL Warehouse**を選択し、使用したいウェアハウスを選択し**Attach**をクリックします。
![](https://docs.databricks.com/_images/clusters-more-sql-warehouse-button.png)

SQLウェアハウスの制限は以下の通りです:

- SQLウェアハウスにアタッチすると、実行コンテキストには8時間のアイドルタイムアウトがあります。
- 返却される結果の最大サイズは、10,000行あるいは2MBの小さい方となります。
- SQLウェアハウスでワークフローやスケジュールしたジョブを実行することはできません。
- SQLウェアハウスにノートブックをアタッチした際、ノートブックパラメータやウィジェットはサポートされません。
- SQLエディタに表示されるクエリープロファイルは、ノートブックには表示されません。しかし、[クエリープロファイルを参照](https://qiita.com/taka_yayoi/items/76bb16a62536d94813d8)することはできます。

## クラスターからノートブックをデタッチ

クラスターからノートブックをデタッチするには、ノートブックツールバーのクラスターセレクターをクリックし、アタッチしているクラスターにマウスカーソルを移動してサイドメニューを表示します。サイドメニューから**Detach**を選択します。
![](https://docs.databricks.com/_images/cluster-detach.png)

またクラスター詳細ページの**Notebook**タブを用いて、クラスターからノートブックをデタッチすることもできます。

クラスターからノートブックをデタッチすると[実行コンテキスト](https://docs.databricks.com/notebooks/execution-context.html)が削除され、ノートブックからすべての計算された変数値がクリアされます。

:::note
**ティップス**
使用していないノートブックはクラスターからデタッチすることをお勧めします。これによってドライバーのメモリーを解放します。
:::

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)