早速、こちらの新機能を試してみます。
これまではDBFS(Databricks File System)を使うか、別のS3やADLSをDBFSマウントして使うという方法、あるいは、Unity Catalogの外部ロケーションとストレージ資格情報を使うしかなかったのですが、ボリュームを活用することで、Unity Catalogのガバナンス機能を活用しながら簡単に任意のファイルを操作できるようになります。
こちらのサンプルノートブックをウォークスルーします。
準備
Unity Catalogのボリュームを操作するには、Databricksランタイム13.2以降が動作しているクラスターが必要です。
スキーマ(データベース)の作成
カタログがない場合には、別途作成ください。
SQL
USE CATALOG takaakiyayoi_catalog;
SQL
CREATE SCHEMA IF NOT EXISTS quickstart_schema
COMMENT "quickstart_schemaという新たなUnity Catalogのスキーマ";
DESCRIBE SCHEMA EXTENDED quickstart_schema;
SQL
USE SCHEMA quickstart_schema;
必要に応じて権限を付与してください。
ボリュームの作成
SQL
CREATE VOLUME IF NOT EXISTS takaakiyayoi_catalog.quickstart_schema.quickstart_volume
COMMENT 'これはサンプルのマネージドボリュームです'
データエクスプローラで確認すると、ボリュームが作成されています。
ファイルの操作
ボリュームにファイルをコピーします。
Python
%python
dbutils.fs.cp("dbfs:/databricks-datasets/wine-quality/winequality-red.csv", "/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/")
ボリュームにディレクトリを作成します。
Python
%python
dbutils.fs.mkdirs("/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/destination")
ファイルを移動します。
Python
%python
dbutils.fs.mv("/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/winequality-red.csv", "/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/destination/")
Python
%python
display(dbutils.fs.ls("/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/destination"))
ボリュームからのデータの読み込み
これまで同様にファイルにアクセスできます。
SQL
SELECT * FROM csv.`dbfs:/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/destination/winequality-red.csv`
PySparkでも同様に。
Python
%python
df1 = spark.read.format("csv").load("dbfs:/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/destination/winequality-red.csv")
display(df1)
%sh
マジックコマンドを用いたシェルからもアクセスできます。
Shell
%sh
ls /Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/
destination
Shell
%sh
cat /Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/winequality-red.csv
"fixed acidity";"volatile acidity";"citric acid";"residual sugar";"chlorides";"free sulfur dioxide";"total sulfur dioxide";"density";"pH";"sulphates";"alcohol";"quality"
7.4;0.7;0;1.9;0.076;11;34;0.9978;3.51;0.56;9.4;5
7.8;0.88;0;2.6;0.098;25;67;0.9968;3.2;0.68;9.8;5
7.8;0.76;0.04;2.3;0.092;15;54;0.997;3.26;0.65;9.8;5
11.2;0.28;0.56;1.9;0.075;17;60;0.998;3.16;0.58;9.8;6
7.4;0.7;0;1.9;0.076;11;34;0.9978;3.51;0.56;9.4;5
7.4;0.66;0;1.8;0.075;13;40;0.9978;3.51;0.56;9.4;5
7.9;0.6;0.06;1.6;0.069;15;59;0.9964;3.3;0.46;9.4;5
7.3;0.65;0;1.2;0.065;15;21;0.9946;3.39;0.47;10;7
7.8;0.58;0.02;2;0.073;9;18;0.9968;3.36;0.57;9.5;7
パブリックプレビューですが、非常に便利な機能だと思います。是非ご活用ください!