◾️はじめに
https://dk521123.hatenablog.com/entry/2022/09/28/105558
で、Glue jobのジョブパラメータを扱ったが、そこから月日が経ち、 「—additional-python-modules」「--python-modules-installer-option」が 出てきたので、メモしておく
目次
【1】--extra-py-files 1)python libraryの作り方 2)指定方法 【2】--additional-python-modules 1)--extra-py-filesとの差異 2)使用用途1:提供済モジュールのバージョン変更 【3】--python-modules-installer-option 【4】サンプル 例1:Wheel を使用したPython ライブラリのインストール 例2:requirements.txt を使用した Python ライブラリのインストール 例3:直接設定で Python ライブラリのインストール
【1】--extra-py-files
* 追加したい Python モジュールを指す Amazon S3 パス(フルパス)を指定 * スクリプト実行前に、AWS Glueの作業ディレクトリにコピーされる * 複数指定する場合は、「,」区切り。
1)python libraryの作り方
* Linux 上で以下を行う
使用上の注意
* 自分で使用するGlue jobのPython バージョンに合わせておくこと
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/release-notes.html
作成例
# バージョン確認 python3 -V # Python 3.11.2 (For Glue5.1) # Step1: To download python library mkdir glue_libs pip install --target glue_libs xxxx=1.1.1 --no-cache-dir --timeout 1800 # Just wait # Step2: To create the ZIP file for the python libs cd glue_libs zip -r ../glue_py_libs.zip . # Step3: Deploy cd .. aws s3 cp ./glue_py_libs.zip s3://your-s3-bucket/xxx/glue_py_libs.zip
2)指定方法
'--extra-py-files': 's3://your-s3-bucket/xxx/glue_py_libs.zip' '--extra-py-files': 's3://your-s3-bucket/test/test-loggger.py,s3://your-s3-bucket/test/test-lib.py'
【2】--additional-python-modules
* 追加の Python モジュールとライブラリをインストール
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-programming-python-libraries.html
* Wheelファイル作成については、以下の関連記事を参照のこと
AWS Glue ~ Wheelファイル作成 ~
https://dk521123.hatenablog.com/entry/2026/01/13/191945
1)--extra-py-filesとの差異
| 特徴 | --extra-py-files | --additional-python-modules |
|---|---|---|
| 仕組み | PYTHONPATH にパスを追加するだけ | 内部で pip install を実行する |
| 主な用途 | 自作の共通関数や単一の .py ファイル | Pandas, NumPy などの外部ライブラリ |
| 依存関係 | 解決しない(手動で全ファイル必要) | 自動で解決する |
| バイナリ | C言語等のバイナリを含むライブラリに弱い | バイナリを正しく配置・登録できる |
| 優先順位 | 既存ライブラリより優先されにくい場合がある | 既存ライブラリを上書き(更新)できる |
補足:--extra-py-filesとは?
https://dk521123.hatenablog.com/entry/2022/09/28/105558
より抜粋 ~~~~ * 追加したい Python モジュールを指す Amazon S3 パス(フルパス)を指定 * スクリプト実行前に、AWS Glueの作業ディレクトリにコピーされる ~~~~
2)使用用途1:提供済モジュールのバージョン変更
* AWS Glue で提供済みの Python モジュール の numpy や pandasなどを 更新する際に使える
より抜粋 ~~~~~~~ AWS Glue で提供済みの Python モジュール これらの提供済みモジュールのバージョンを変更するには、 --additional-python-modules ジョブパラメータにより 新しいバージョンを指定します。 ~~~~~~~
【3】--python-modules-installer-option
* pip3 に追加オプションを渡す
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-programming-python-libraries.html
追加オプション例
* 以下のサイト参照
https://bigdata-analytics.jp/python/pip-install-option/
| Options | Explanations |
|---|---|
| -U, --upgrade | pipそのものをアップグレードする場合 |
| -r <ファイル名>, --requirement <ファイル名> | 指定したファイルからパッケージリストを読み込む |
| --no-deps <パッケージ名> | 関連する依存関係にあるパッケージをインストールしない |
【4】サンプル
例1:Wheel を使用した Python ライブラリのインストール
--additional-python-modules s3://amzn-s3-demo-bucket/path/to/package-1.0.0-py3-none-any.whl, s3://your-bucket/path/to/another-package-2.1.0-cp311-cp311-linux_x86_64.whl
AWS Glue ~ Wheelファイル作成 ~
https://dk521123.hatenablog.com/entry/2026/01/13/191945
例2:requirements.txt を使用した Python ライブラリのインストール
--python-modules-installer-option -r
--additional-python-modules s3://amzn-s3-demo-bucket/path/to/requirements.txt
例3:直接設定で Python ライブラリのインストール
--additional-python-modules scikit-learn==0.21.3,ephem==4.1.6
参考文献
https://dev.classmethod.jp/articles/20200812-aws-glue-version2-python-module-update/
関連記事
AWS Glue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/01/221926
AWS Glue ~ 基本編 / ジョブ ~
https://dk521123.hatenablog.com/entry/2019/11/17/231505
AWS Glue ~ ジョブパラメータ ~
https://dk521123.hatenablog.com/entry/2022/09/28/105558
AWS Glue ~ Wheelファイル作成 ~
https://dk521123.hatenablog.com/entry/2026/01/13/191945
オフライン環境下で pip install するには
https://dk521123.hatenablog.com/entry/2021/07/10/164833