1
2

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.

Databricksにおけるライブラリインストール機能のウォークスルー

Posted at

以前、こちらのマニュアルを翻訳しましたが、一年以上経ったこともあり現時点の機能をウォークスルーしてみます。

なお、クラスターにインストールされるDatabricksランタイムには一般的なライブラリはプレインストールされているので、ランタイムに含まれていないライブラリが必要な際にインストールを行います。

そして、利用形態によってライブラリのインストールが異なりますので、注意が必要です。

現時点で利用できるライブラリのインストール形態は以下の2つです。

  • ノートブックスコープライブラリ
  • クラスターライブラリ

以前あったワークスペースライブラリは非推奨になりました。クラスターへのライブラリのインストールを強制したい場合には、クラスターポリシーを使用してください。

ノートブックスコープライブラリ

ノートブックスコープライブラリは、現在使用しているノートブックのセッションでのみ有効なライブラリです。同じクラスターにアタッチしている他のノートブックに影響を与えません。実験目的でクイックにライブラリを試したい際に使用します。ノートブックを実行する度にライブラリのインストールが必要となります。

ここでは、drawdataというライブラリを試してみます。

# Importing the drawdata
from drawdata import draw_scatter
draw_scatter()
ModuleNotFoundError: No module named 'drawdata'

Databricksランタイムに入っていないのでエラーになります。なので、ノートブックスコープライブラリとしてライブラリをインストールします。

%pip install drawdata
dbutils.library.restartPython()

Google Colaboなどでは!pip installかと思いますが、Databricksの場合、%pip installです。これで、クラスターの全ノードにライブラリがインストールされます。!pip installも使えますが、この場合、クラスターのドライバーノードにのみライブラリがインストールされます。

また、dbutils.library.restartPython()も重要です。Databricks Runtime 13.0 以降では、%pipコマンドはPythonプロセスを自動的に再起動しません。新しいパッケージをインストールするか、既存のパッケージを更新する場合は、新しいパッケージを確認するためにdbutils.library.restartPython()を使用する必要がある場合があります。

これで、ノートブックスコープライブラリとしてインストールされたので、再度トライします。

# Importing the drawdata
from drawdata import draw_scatter
draw_scatter()

動きました。線を描画してプロットからデータを生成することができるんですね。
Screenshot 2023-11-17 at 17.59.40.png

クラスターライブラリ

しかし、上述したようにノートブックスコープライブラリはノートブックを実行する度に、ライブラリのインストールが必要です。この手間を省くにはクラスターライブラリを使用します。クラスターライブラリの場合、当該クラスターにアタッチされるすべてのノートブックがライブラリを利用できるようになります。ですので、恒久的にライブラリを活用することを決断した場合には、クラスターライブラリをお使いください。

クラスターの画面にアクセスし、ライブラリタブを開きます。
Screenshot 2023-11-17 at 18.01.32.png

新規をインストールをクリックします。PyPI以外にもCRANなどからもライブラリをインストールできます。ライブラリのソースを選択し、パッケージ名を入力しインストールします。
Screenshot 2023-11-17 at 18.02.37.png
Screenshot 2023-11-17 at 18.03.09.png

クラスターライブラリとしてインストールされました。
Screenshot 2023-11-17 at 18.04.16.png

動作確認するためにノートブックをクラスターからデタッチして、再度アタッチします。これでノートブックセッションがクリアされます。
Screenshot 2023-11-17 at 18.05.10.png

再度drawdataを実行します。

# Importing the drawdata
from drawdata import draw_scatter
draw_scatter()

動きました。これで、このクラスターを使っている限り、インストールしたライブラリを利用できるようになりました。
Screenshot 2023-11-17 at 18.06.39.png

なお、どのようなライブラリがクラスターライブラリやノートブックスコープライブラリとしてインストールされているのかは、画面右にあるライブラリボタンから確認することができます。以下の例では、クラスターライブラリとしてdrawdataがインストールされていることを確認できます。
Screenshot 2023-11-17 at 18.05.45.png

是非ご活用ください!

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

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

Databricks無料トライアル

Databricks無料トライアル

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?