Wie verwende ich externe Python-Bibliotheken in meinem AWS Glue 1.0 oder 0.9 ETL-Job?

Lesedauer: 3 Minute
0

Ich möchte eine externe Python-Bibliothek in meinem AWS Glue 1.0 oder 0.9 Extrahieren, Transformieren und Laden (ETL) -Job verwenden.

Kurzbeschreibung

Gehen Sie wie folgt vor, um eine externe Bibliothek in einem Apache Spark-ETL-Job zu verwenden:

1.    Packen Sie die Bibliotheksdateien in eine ZIP-Datei (es sei denn, die Bibliothek ist in einer einzigen .py-Datei enthalten).

2.    Laden Sie das Paket auf Amazon Simple Storage Service (Amazon S3) hoch.

3.Verwenden Sie die Bibliothek in einem Job oder JobRun.

Behebung

Im Folgenden finden Sie ein Beispiel für die Verwendung einer externen Bibliothek in einem Spark ETL AWS Glue 1.0 oder 0.9 ETL-Job.

Wichtig: Wenn Sie eine externe Bibliothek in Ihrem AWS Glue 2.0-Job verwenden möchten, finden Sie weitere Informationen unter Wie verwende ich externe Python-Bibliotheken in meinem AWS Glue 2.0-ETL-Job? Wenn Sie eine externe Bibliothek in einem Python-Shelljob verwenden möchten, folgen Sie den Schritten unter Bereitstellen einer eigenen Python-Bibliothek.

1.    Erstellen Sie eine Python-2- oder Python-3-Bibliothek für boto3. Stellen Sie sicher, dass die von Ihnen verwendete AWS Glue-Version die Python-Version unterstützt, die Sie für die Bibliothek ausgewählt haben. AWS Glue Version 1.0 unterstützt Python 2 und Python 3, und AWS Glue Version 0.9 unterstützt nur Python 2.

Hinweis: Bibliotheken und Erweiterungsmodule für Spark-Jobs müssen in Python geschrieben sein. In C geschriebene Bibliotheken wie Pandas werden in Glue 0.9 oder 1.0 nicht unterstützt. Wenn Sie eine in C geschriebene Bibliothek verwenden müssen, aktualisieren Sie AWS Glue auf mindestens Version 2.0 und verwenden Sie die Option --additional-python-modules. Weitere Informationen finden Sie unter Wie verwende ich externe Python-Bibliotheken in meinem AWS Glue 2.0-ETL-Job?

2.Starten Sie eine Amazon Elastic Compute Cloud (Amazon EC2) Linux-Instance.

3.Stellen Sie mithilfe von SSH eine Verbindung zur Linux-Instance her.

4.    Führen Sie die folgenden Befehle aus, um Python und Boto3 zu installieren. Weitere Informationen finden Sie in der Boto3-Dokumentation für 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.    Bestätigen Sie den Speicherort des Python-Verzeichnisses site-packages:

python -m site

Sie erhalten eine Ausgabe, die der folgenden ähnelt:

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

6.    Verpacken Sie die externen Bibliotheksdateien in eine ZIP-Datei, sofern die Bibliothek nicht in einer einzigen .py-Datei enthalten ist. Die ZIP-Datei muss eine Datei __init__.py enthalten, und das Paketverzeichnis muss sich im Stammverzeichnis des Archivs befinden. Die Datei__init__.py kann leer sein. Weitere Informationen finden Sie in der Python-Dokumentation für Pakete.

Beispiel:

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

7.    Laden Sie das Paket auf Amazon S3 hoch:

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

8.Verwenden Sie die Bibliothek in einem Job oder JobRun.

Gehen Sie wie folgt vor, um eine externe Bibliothek in einem Entwicklungsendpunkt zu verwenden:

1.    Verpacken Sie die Bibliothek und laden Sie die Datei auf Amazon S3 hoch, wie zuvor erläutert.

2.Erstellen Sie den Entwicklungsendpunkt. Geben Sie für den Python-Bibliothekspfad den Amazon S3-Pfad für das Paket ein. Weitere Informationen finden Sie unter Laden von Python-Bibliotheken in einen Entwicklungsendpunkt.


Ähnliche Informationen

Verwenden von Python-Bibliotheken mit AWS Glue

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren