3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unity Catalogのボリュームを操作してみる

Posted at

早速、こちらの新機能を試してみます。

これまでは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;

Screenshot 2023-07-14 at 20.15.54.png

SQL
USE SCHEMA quickstart_schema;

必要に応じて権限を付与してください。

ボリュームの作成

SQL
CREATE VOLUME IF NOT EXISTS takaakiyayoi_catalog.quickstart_schema.quickstart_volume
COMMENT 'これはサンプルのマネージドボリュームです'

データエクスプローラで確認すると、ボリュームが作成されています。
Screenshot 2023-07-14 at 17.56.51.png

ファイルの操作

ボリュームにファイルをコピーします。

Python
%python
dbutils.fs.cp("dbfs:/databricks-datasets/wine-quality/winequality-red.csv", "/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/")

ファイルがコピーされています。
Screenshot 2023-07-14 at 17.57.55.png

ボリュームにディレクトリを作成します。

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"))

Screenshot 2023-07-14 at 20.22.35.png

ボリュームからのデータの読み込み

これまで同様にファイルにアクセスできます。

SQL
SELECT * FROM csv.`dbfs:/Volumes/takaakiyayoi_catalog/quickstart_schema/quickstart_volume/destination/winequality-red.csv`

Screenshot 2023-07-14 at 20.23.24.png

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

パブリックプレビューですが、非常に便利な機能だと思います。是非ご活用ください!

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

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

Databricks無料トライアル

Databricks無料トライアル

3
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?