Posted at

Treasure Data の Custom Scripts で任意のライブラリを読み込む

Custom Scripts で未インストールのライブラリを使いたい場合のメモです。

例えば、以下のようにファイルが配置されている時、

├ py_scripts

│ └ sample.py
└ sample.dig

ワークフローの設定ファイルには以下のように記述し、

timezone: Asia/Tokyo

+task1:
py>: py_scripts.sample.sample_sleep
docker:
image: "digdag/digdag-python:3.7"

sample.py の中で以下のようにインストールします。

import sys

import subprocess

subprocess.call([sys.executable, '-m', 'pip', 'install', 'tqdm'])

def sample_sleep():
from tqdm import tqdm
import time

for i in tqdm(range(100)):
time.sleep(0.1)


参考になった記事

Introduction to Custom Scripts

Adding a Custom Python Script to your Workflow