Databricksワークスペースでライブラリを利用する手順をまとめています。
注意
- こちらではPythonのライブラリについてフォーカスしています。
- また、Databricksがデプロイされている環境ではインターネットに接続できることを想定しています。閉域網を構成するPrivateLink構成の場合、異なる方法を取る必要があります。
まず、Databricksのクラスターに自動でインストールされるソフトウェアパッケージであるDatabricksランタイムには、よく利用されるライブラリが事前にインストールされているので、多くの場合、追加のライブラリのインストールは不要です。
使用するランタイムのバージョンによって事前インストールされているライブラリがことなりますので、以下の手順で必要とするライブラリがランタイムで利用できるのかを確認してください。
ライブラリのインストール
上で確認して、必要なライブラリがインストールされていない、あるいは、バージョンが異なる場合にはライブラリをインストールすることになります。
ライブラリの用途、適用範囲に応じてインストール方法が異なります。
- 自分の使っているノートブックだけで実験的にライブラリをインストールしたい: ノートブックスコープライブラリとしてライブラリをインストールします。
- クラスターを利用している全てのユーザー、全てのノートブックで同じバージョンのライブラリを利用してもらいたい: クラスターライブラリとしてライブラリをインストールします。
- ワークスペースにアクセスするユーザーが利用できるライブラリのリポジトリを準備しておきたい: ワークスペースライブラリとしてライブラリをインストールします。
注意
PrivateLink構成の場合、クラスターからパブリックのリポジトリにアクセスできないため、必要なライブラリをインストールしたDockerイメージを作成し、クラスターとして利用することをお勧めします。
クラスターライブラリのインストール
共用のクラスターで同じバージョンのライブラリを利用できるようにしたいと考え、クラスターライブラリをインストールします。
- サイドメニューのクラスターにアクセスし、ライブラリをインストールしたいクラスターを選択します。
-
ライブラリタブを開きます。インストール済みのライブラリが表示されます。
- 新規をインストールをクリックします。
- ライブラリのソースではPyPIを選択し、パッケージには
XlsxWriter
を入力します。
- インストールをクリックします。
- ライブラリのステータスがインストール済みになったことを確認します。
- 上でライブラリをインストールしたクラスターにノートブックをアタッチします。
- 以下のようなロジックを記述し、実行するとExcelファイルが作成されます。
import pandas as pd
filename="test.xlsx" #ファイル名
exportlist=[1,1,2,3,1,4,5] #リスト
df = pd.DataFrame(exportlist) #データフレームの作成
writer = pd.ExcelWriter(filename,options={'strings_to_urls': False}, engine='xlsxwriter')
df.to_excel(writer, sheet_name="Sheet1")#Writerを通して書き込み
writer.close()
ここでインストールしたライブラリXlsxWriter
は、上のクラスターを利用する全てのユーザーが使用することができます。
注意
上のコードでは、Excelファイルはクラスター上に作成されます。ローカルにファイルをダウンロードするにはDBFSの/FileStore
に移動する必要があります。詳細はDatabricksのFileStoreをご覧ください。
ノートブックスコープライブラリのインストール
同じクラスターを利用している他のユーザーには影響を与えず、自分でライブラリを試してみたいと考え、ノートブックスコープライブラリをインストールします。
重要!
ノートブックの一番最初に%pip
を記述してください。%pip
が実行された後に、ノートブックの内部状態がリセットされます。ノートブックでPythonメソッドあるいは変数を宣言した後に%pip
を実行するとそれらは消去されてしまいます。
-
ここでは
japanize-matplotlib
をインストールします。セルに以下の内容を記述し実行します。Python%pip install japanize-matplotlib
-
以下のコマンドを実行して、日本語のグラフが正常に表示されることを確認します。
Pythonimport matplotlib.pyplot as plt import japanize_matplotlib # <- これ plt.plot([1, 2, 3, 4]) plt.xlabel('簡単なグラフ') plt.show()
ノートブックスコープライブラリとしてインストールしたライブラリは、同じクラスターを使っている他のユーザーに影響を与えませんので、気軽に実験を行うことができます。一方で、ライブラリは永続化されないので、クラスターが再起動するたびに再インストールする必要があります。