Databricksノートブックへの画像の埋め込み

マークダウンセルを使えば画像をノートブック上に表示できるのですが、画像ファイルをどこに配置するのかと言う問題があります。

# DBFSのFileStoreの画像を参照

こちらで説明されている方法は、Databricksファイルシステム(DBFS)の[FileStore](https://docs.databricks.com/ja/archive/legacy/filestore.html)というパスに保存する方法です。

https://docs.databricks.com/ja/notebooks/notebooks-code.html#display-images

FileStoreに格納されているファイルは**ワークスペースにログインしている限り**ブラウザから直接アクセスできるので、ノートブックに画像がレンダリングされます。

## FileStoreへの画像のアップロード

サイドメニューの**カタログ**にアクセスし、**DBFSを閲覧**をクリックします。
![Screenshot 2024-06-12 at 10.16.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/c45ce70f-68c8-27b4-a052-1dc7f9f615ec.png)

`FileStore`配下のアップロード先フォルダを選択して、**アップロード**を選択します。
![Screenshot 2024-06-12 at 10.21.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/0af3b7fc-0742-31ca-b029-93e6d6f432e4.png)

画像ファイルをドラッグ&ドロップして、**完了**をクリックします。
![Screenshot 2024-06-12 at 10.22.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/b6dab386-b834-7e28-ab01-6d8837093772.png)

画像がアップロードされました。
![Screenshot 2024-06-12 at 10.22.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/f46d7867-2858-f9da-3a89-274900a561f1.png)

画像ファイルの右にある▼をクリックして、**パスをコピー**を選択します。
![Screenshot 2024-06-12 at 10.23.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/30789ec5-1c32-826c-a5d8-3a5329fe0a01.png)

どちらをコピーしてもいいのですが、ここではAPI形式をコピーしておきます。
![Screenshot 2024-06-12 at 10.24.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/dcd44853-91f4-bbd9-7acd-613d4b37c0f2.png)

## マークダウンセルへの埋め込み

DBFS上のパスからURLに変換する必要があるので注意してください。`FileStore`を`files`に変更して、先頭をDatabricksワークスペースのホスト名から構成されるURLに変更します。

**DBFS上のパス**

`/dbfs/FileStore/download.png`

**URL**

`https://<ワークスペースのホスト名>/files/download.png`

以下のようにマークダウンセルに記載することで画像がレンダリングされます。

```
%md
![](https://<ワークスペースのホスト名>/files/download.png)
```
![Screenshot 2024-06-12 at 10.26.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/adde14e7-6378-62f6-7ee6-d9bfa3006ba2.png)

ただ、この方法ですと複数の画像を使う場合、いちいち画像をアップロードしなくてはなりません。他の方法としてはインターネットからアクセス可能なオブジェクトストレージに画像を保存しておく方法ありますが、これも準備が必要です。直接画像を埋め込めたら楽になるのですが。

# マークダウンセルに画像をハードコード

ということで、こちらの方法です。

https://community.databricks.com/t5/community-discussions/rendering-markdown-images-hard-coded-as-data-image-png-base64-in/td-p/53325

:::note info
**注意**
こちらの方法はbase64エンコードした画像をノートブックに記載することになるので、結果としてノートブックのサイズが増加します。大量の画像を使用する際には上述の方法を検討ください。
:::

こちらかbase64エンコードのロジックをお借りします。

https://qiita.com/danishi/items/7f1569151a766b678b02

```py
import base64

def image_file_to_base64(file_path):
    with open(file_path, "rb") as image_file:
        data = base64.b64encode(image_file.read())

    return data.decode('utf-8')
```

ローカルファイルAPIからDBFSへのアクセスなので、パスの先頭に`/dbfs`を付けます。

```py
image_file_to_base64("/dbfs/FileStore/download.png")
```
```
'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'
```

これをマークダウンセルに記述するのですが、一点注意が必要です。マークダウンセルのマジックコマンドは通常は`%md`ですが、ここでは`%md-sandbox`を指定してください。そうでないと画像がレンダリングされません。上の出力結果から前後のシングルクォートを削除して、頭に`data:image/png;base64,`を追加します。

```
%md-sandbox
![](data:image/png;base64,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)
```

これで画像がレンダリングされます。
![Screenshot 2024-06-12 at 10.53.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d50921af-9c0b-e9df-bbc0-49cdc58485bf.png)


# まとめ

それぞれの方法にはメリット・デメリットがあるので、状況に応じて使い分けてください。

|  | DBFSやオブジェクトストレージに格納した画像を参照 | base64エンコードした文字列を埋め込み |
|:--|:--|:--|
| メリット  | ノートブックのサイズが増えない  | 文字列を貼り付けるだけで良いので、個別にファイルをアップロードする必要がない  |
| デメリット  | 個別のファイルアップロードが必要  | ノートブックのサイズが増加する。大きな画像を埋め込んだ場合にノートブックの挙動が遅くなる場合がある  |



### はじめてのDatabricks

[はじめてのDatabricks](https://qiita.com/taka_yayoi/items/8dc72d083edb879a5e5d)

### Databricks無料トライアル

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