2
0

Databricksのボリューム機能による画像ファイルの取り扱い

Posted at

こちらの記事で触れているボリューム機能を画像ファイルの取り扱いを通じてウォークスルーします。

画像アーカイブファイルのダウンロード

こちらのzipファイルをローカルマシンにダウンロードします。

Screenshot 2023-10-25 at 19.21.44.png

ボリュームへのアーカイブファイルのアップロード

すでに作成済みのボリュームにアップロードします。作成方法はこちらをご覧ください。

カタログエクスプローラにアクセスして、対象のボリュームにアクセスします。そして、このボリュームにアップロードボタンをクリックします。
Screenshot 2023-10-25 at 19.24.03.png

ダウンロードしたアーカイブファイルをドラッグ&ドロップします。
Screenshot 2023-10-25 at 19.24.21.png
Screenshot 2023-10-25 at 19.24.32.png

アップロードをクリックすると、アップロードが開始しますので少々待ちます。
Screenshot 2023-10-25 at 19.24.43.png

アップロードされました。
Screenshot 2023-10-25 at 19.28.06.png

ボリュームのファイルの操作

ノートブックから操作するので、新規にノートブックを作成します。ノートブック左側のScreenshot 2023-10-25 at 19.36.31.pngカタログをクリックすると、ノートブックの隣にカタログエクスプローラの簡易版が表示されます。アーカイブファイルにマウスカーソルを移動すると3点リーダーが表示されるので、そちらをクリックするとvolume fileパスをコピーメニューが表示されるので選択します。これでボリューム上のファイルのパスがコピーされます。

以下のコマンドを実行して、ファイルをunzipします。

shell
unzip /Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/archive.zip -d /Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/catsanddogs/

普通のファイルシステム同様に解凍処理が行われます。
Screenshot 2023-10-25 at 19.39.41.png

約1万ファイルあるので、それなりに時間がかかります。

shell
%sh
find /Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/catsanddogs/ -type f | wc -l
10032

って、普通にシェルコマンド使えますね。

このセクションの最後として画像を確認します。

Python
from PIL import Image

image_to_classify = "/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/catsanddogs/test_set/test_set/cats/cat.4010.jpg"
image = Image.open(image_to_classify)
display(image)

むはー、って普通のファイルシステムと同じようにアクセスできます。
Screenshot 2023-10-25 at 20.30.54.png

テーブルへの登録

まず、Sparkの画像データソースを使ってデータフレームにロードします。

Python
# 画像データソースを用いて画像データソースを作成します
image_df = spark.read.format("image").load("/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/catsanddogs/test_set/test_set/cats")

# データフレームを表示します
display(image_df) 

むふー、これだけで癒されます。猫派です。
Screenshot 2023-10-25 at 20.18.52.png

これをテーブルとしてUnity Catalogに保存します。

Python
image_df.write.format("delta").mode("overwrite").saveAsTable("takaakiyayoi_catalog.quickstart_schema.cat_test_image")

カタログエクスプローラでテーブルを確認できます。
Screenshot 2023-10-25 at 20.24.02.png

リネージを確認するために依存関係をクリックします。パスをクリックすると、どのボリュームからこのテーブルが作成されたのかを確認できます。
Screenshot 2023-10-25 at 20.25.15.png

さらに、リネージグラフを表示をクリックすると依存関係をグラフィカルに確認することができます。
Screenshot 2023-10-25 at 20.26.32.png

まとめ

これまではDBFSにファイルをアップロードするアプローチしか無かったのですが、ボリュームを使うことでより洗練されたGUIでファイルを操作でき、かつ、Unity Catalogによるアクセスコントロールやリネージの機能を活用できます。ぜひご活用ください!

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0