LoginSignup
5
2

More than 1 year has passed since last update.

Databricksクイックスタートガイドのコンテンツです。

本記事では、PyPIなどで公開されているライブラリではなく、ご自身で開発されたPythonのカスタムライブラリをDatabricksで利用する方法をご説明します。

注意
本記事はWheelをインストールする手順をご説明します。カスタムライブラリに頻繁に変更が加えられる場合には、後述するReposの利用をご検討ください。

以前の記事でカスタムライブラリの利用方法に触れていましたが、今回は以下の1の方法について具体的にご説明します。

  1. wheelを作成して、ワークスペースライブラリとしてインストール
  2. libify · PyPIをインストールし、ノートブック間のimportを実現する

カスタムライブラリの準備

今回は以下のような構成のシンプルなライブラリを使用します。

my_module
├── setup.py
└── src
    └── tasks
        ├── __init__.py
        └── sample.py
setup.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'},
)
__init__.py
# Databricks notebook source
from .sample import (
    test
)

__version__ = '0.1.0'
sample.py
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

カスタムライブラリのインストール

ノートブックスコープライブラリ、クラスターライブラリとしてインストールできますが、毎回インストールの必要がないクラスターライブラリとしてインストールします。

  1. インストール対象のクラスターを起動します。
  2. Librariesタブを開いてInstall Newをクリックします。 Screen Shot 2021-06-16 at 9.09.24.png
  3. Library TypePython Whlを選択して、上で作成したWheelファイルをドラッグアンドドロップして、Installをクリックします。。 Screen Shot 2021-06-16 at 9.09.50.png

以下のような状態になればライブラリのインストールは完了です。
Screen Shot 2021-06-16 at 9.18.39.png

カスタムライブラリのインポート

  1. カスタムライブラリをインストールしたクラスターにノートブックにアタッチします。
  2. 以下のようにライブラリをインポートして、ライブラリ内の関数を呼び出します。 Screen Shot 2021-06-16 at 9.21.03.png

Reposの活用

Githubをご利用されている場合には、Reposをご活用いただくことでリポジトリ上のカスタムライブラリをインポートすることができます。

Databricks ReposによるGit連携 - Qiita

Reposを活用することで、GitHubにコミットしたライブラリをインポートすることができます。

  1. インポートする際にはGitHubのPersonal Access Tokenが必要となります。秘匿性の高い情報ですので、CLIを使用して事前にシークレットとして登録しておきおます。
  2. 以下のように、pipでライブラリをインストールしてライブラリで定義されている関数を呼び出します。

Databricksにおけるシークレットの管理 - Qiita

Githubからのインポート例(Python)
# シークレットから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

Databricks 無料トライアル

Databricks 無料トライアル

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