Databricksクイックスタートガイドのコンテンツです。
本記事では、PyPIなどで公開されているライブラリではなく、ご自身で開発されたPythonのカスタムライブラリをDatabricksで利用する方法をご説明します。
注意
本記事はWheelをインストールする手順をご説明します。カスタムライブラリに頻繁に変更が加えられる場合には、後述するReposの利用をご検討ください。
以前の記事でカスタムライブラリの利用方法に触れていましたが、今回は以下の1の方法について具体的にご説明します。
- wheelを作成して、ワークスペースライブラリとしてインストール
- libify · PyPIをインストールし、ノートブック間のimportを実現する
カスタムライブラリの準備
今回は以下のような構成のシンプルなライブラリを使用します。
my_module
├── setup.py
└── src
└── tasks
├── __init__.py
└── sample.py
from setuptools import setup, find_packages
setup(
name='tasks',
version='0.1.1',
license='proprietary',
description='Module Experiment',
author='taka-yayoi',
author_email='takaaki.yayoi@databricks.com',
url='databricks.com',
packages=find_packages(where='src'),
package_dir={'': 'src'},
)
# Databricks notebook source
from .sample import (
test
)
__version__ = '0.1.0'
def test():
print("test module worked!")
wheelの作成
my_module
に移動して以下を実行します。
python setup.py bdist_wheel
すると、以下のようにファイルが作成されます。dist
にあるtasks-0.1.1-py3-none-any.whl
がWheelファイルとなります。
my_module
├── build
│ ├── bdist.macosx-10.15-x86_64
│ └── lib
│ └── tasks
│ ├── __init__.py
│ ├── sample.py
│ └── sample2.py
├── dist
│ └── tasks-0.1.1-py3-none-any.whl
├── setup.py
└── src
├── tasks
│ ├── __init__.py
│ ├── sample.py
│ └── sample2.py
└── tasks.egg-info
├── PKG-INFO
├── SOURCES.txt
├── dependency_links.txt
└── top_level.txt
カスタムライブラリのインストール
ノートブックスコープライブラリ、クラスターライブラリとしてインストールできますが、毎回インストールの必要がないクラスターライブラリとしてインストールします。
- インストール対象のクラスターを起動します。
-
Librariesタブを開いてInstall Newをクリックします。
-
Library TypeでPython Whlを選択して、上で作成したWheelファイルをドラッグアンドドロップして、Installをクリックします。。
以下のような状態になればライブラリのインストールは完了です。
カスタムライブラリのインポート
Reposの活用
Githubをご利用されている場合には、Reposをご活用いただくことでリポジトリ上のカスタムライブラリをインポートすることができます。
Databricks ReposによるGit連携 - Qiita
Reposを活用することで、GitHubにコミットしたライブラリをインポートすることができます。
- インポートする際にはGitHubのPersonal Access Tokenが必要となります。秘匿性の高い情報ですので、CLIを使用して事前にシークレットとして登録しておきおます。
- 以下のように、pipでライブラリをインストールしてライブラリで定義されている関数を呼び出します。
Databricksにおけるシークレットの管理 - Qiita
# シークレットからGitHubのパーソナルアクセストークンを取得
token = dbutils.secrets.get(scope = "takaaki.yayoi@databricks.com", key = "github")
# pipを用いてライブラリをインストール
%pip install git+https://$token@github.com/taka-yayoi/project-test.git