1
0

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.

AWS Glueのpython shellで自作スクリプトを読み込む

Posted at

AWS GlueでPython ShellでETLの仕組みを2つほど作っていて共通化できるmethodを外部から読み込めないかと思い調べてみた。

ライブラリを egg ファイルまたは whl ファイルとしてパッケージ化して設置する

作成したライブラリをeggファイル or whlファイルとしてパッケージ化して読み込ませる。このパッケージ化したファイルをglueの管理画面にある「python library path」として指定する。

libフォルダーを作成してその中にsetup.pyファイルを作成する

現時点(2023年2月2日段階)でpython3.9で.eggファイルを使用するとモジュールが読み込めないエラーが発生するので .whlを作成する。 .eggはpython3.6で稼働できることを確認

setup.py
from setuptools import setup

setup(
    name="hello_module",
    version="0.1",
    packages=['hello_module']
) 

次にhello_moduleディレクトリを作成して以下の3つのファイルを作成する

hello_world.py
def hello_world(name):
    return 'Hello World, ' + str(name)
goodby_world.py
def goodby_world(name):
    return 'Goodby World, ' + str(name)
__init__.py
空ファイルのまま

次に以下のコマンドを実行
.eggファイルを作成する

python setup.py bdist_egg

.whlファイルを作成する

python setup.py bdist_wheel

実行するとdistフォルダー内にファイルが生成される。これをS3の特定のバケットに設置する

AWS Glueでpython shellを作成
from hello_module import hello_world, goodby_world

hi = hello_world('Taro')
print(hi)

by = goodby_world('Hanako')
print(by)

Libraries Pathの設定

スクリーンショット 2023-02-01 16.48.23.png

以上で実行して確認する。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?