AWS Glue 1.0 または 0.9 ETL ジョブで外部 Python ライブラリを使用するにはどうすればよいですか?

所要時間2分
0

AWS Glue 1.0 または 0.9 の抽出、変換、ロード (ETL) ジョブで外部 Python ライブラリを使用したいと考えています。

簡単な説明

Apache Spark ETL ジョブで外部ライブラリを使用するには、以下を行います。

1.    ライブラリファイルを .zip ファイルにパッケージ化します (ライブラリが単一の .py ファイルに含まれていない場合)。

2.    パッケージを Amazon Simple Storage Service (Amazon S3) にアップロードします。

3.    ジョブまたは JobRun でライブラリを使用します

解決方法

以下は、Spark ETL AWS Glue 1.0 または 0.9 ETL ジョブで外部ライブラリを使用する方法の例です。

重要: AWS Glue 2.0 ジョブで外部ライブラリを使用する場合は、「AWS Glue 2.0 ETL ジョブで外部 Python ライブラリを使用するにはどうすればよいですか」を参照してください。 Python シェルジョブで外部ライブラリを使用する場合は、独自の Python ライブラリの提供のステップに従います。

1.    boto3 用の Python 2 または Python 3 ライブラリを作成します。使用している AWS Glue のバージョンが、ライブラリ用に選択した Python バージョンをサポートしていることを確認します。AWS Glue バージョン 1.0 は Python 2 と Python 3 をサポートし、AWS Glue バージョン 0.9 は Python 2 のみをサポートします。

注: Spark ジョブ用のライブラリと拡張モジュールは Python で記述する必要があります。C 言語で記述された pandas などのライブラリは、Glue 0.9 または 1.0 ではサポートされていません。C 言語で記述されたライブラリを使用する必要がある場合は、AWS Glue をバージョン 2.0 以降にアップグレードし、--additional-python-modules オプションを使用してください。詳細については、「AWS Glue 2.0 ETL ジョブで外部 Python ライブラリを使用するにはどうすればよいですか?」を参照してください。

2.    実行中の Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスが必要です。

3.    SSH を使用して Linux インスタンスに接続します

4.    次のコマンドを実行して Python と Boto3 をインストールします。詳細については、Boto3 ドキュメントの Quickstart を参照してください。

sudo yum groupinstall "Development Tools"
sudo yum -y install openssl-devel
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar xvf Python-3.6.9.tgz
cd Python-3.6.9/
./configure --enable-optimizations
sudo make install
sudo pip install boto3

5.    Python の site-packages ディレクトリの場所を確認します。

python -m site

次のような出力が表示されます。

/usr/lib/python3.6/site-packages

6.    ライブラリが 1 つの .py ファイルに含まれていない限り、外部ライブラリファイルを .zip ファイルにパッケージ化します。.zip ファイルには __init__.py ファイルが含まれている必要があり、パッケージディレクトリはアーカイブのルートにある必要があります。__init__.py ファイルは空にすることができます。詳細については、Python ドキュメントの Packages を参照してください。

例:

cd /usr/lib/python3.6/site-packages
sudo zip -r -X "/home/ec2-user/site-packages.zip" *

7.    パッケージを Amazon S3 にアップロードします。

aws s3 cp /home/ec2-user/site-packages.zip s3://awsexamplebucket/

8.    ジョブまたは JobRun でライブラリを使用します

開発エンドポイントで外部ライブラリを使用するには、次を実行します。

1.    前に説明したように、ライブラリをパッケージ化し、ファイルを Amazon S3 にアップロードします。

2.    開発エンドポイントを作成しますPython library path では、パッケージの Amazon S3 パスを入力します。詳細については、開発エンドポイントでの Python ライブラリのロードを参照してください。


関連情報

AWS Glue で Python のライブラリを使用する

AWS公式
AWS公式更新しました 1年前
コメントはありません