web-dev-qa-db-ja.com

AWS Glue Python with NumPyおよびPandas Python Packages

AWSの新しいETLツールであるGlue内でNumPyやPandasなどのパッケージを使用する最も簡単な方法は何ですか?Python NumPyとPandasを利用するAWS Glueで実行したい。

11
jumpman23

現在の答えはあなただと思いますできないAWS Glueドキュメント によると:

純粋なPythonライブラリのみ使用できます。pandas Python Data Analysis LibraryなどのC拡張に依存するライブラリ、まだサポートされていません。

しかし、通常のpythonで書かれたライブラリをS3に含めようとした場合でも、HDFS権限の問題のために接着ジョブが失敗しました。これを解決する方法を見つけた場合は、私にも知らせてください。

11
Jasper_Li

純粋なpythonライブラリがなくても使用したい場合は、以下のスクリプトを使用して、グルーコードで使用できます。

import os
import site
from setuptools.command import easy_install
install_path = os.environ['GLUE_INSTALLATION']
easy_install.main( ["--install-dir", install_path, "<library-name>"] )
reload(site)


import <installed library>
4
bdcloud

ジョブの実行をクリックすると、デフォルトで折りたたまれているボタンジョブパラメータ(オプション)があり、それをクリックすると、s3にライブラリを保存するために使用できる次のオプションがあり、これは私にとっては機能します。

Pythonライブラリパス

s3:// bucket-name/folder-name/file-name

依存jarパス

s3:// bucket-name/folder-name/file-name

参照ファイルのパスs3:// bucket-name/folder-name/file-name

2
letstry

現時点では、Python拡張モジュールとライブラリは、純粋なPythonで記述されている限り、AWS Glue ETLスクリプトで使用できます。pandasなどのCライブラリ=現在のところサポートされておらず、他の言語で書かれた拡張機能もサポートされていません。

1
BigData-Guru

アップデートがあります:

... Pythonシェルジョブを使用できるようになりました... ... Python 2.7と互換性のあるAWS GlueサポートスクリプトのPythonシェルジョブBoto3、NumPy、SciPy、パンダなどのライブラリがプリロードされています。

https://aws.Amazon.com/about-aws/whats-new/2019/01/introducing-python-Shell-jobs-in-aws-glue/

ジョブを編集する場合(または新しいジョブを作成する場合)、「スクリプトライブラリとジョブパラメータ(オプション)」と呼ばれる省略されたセクションがあります。そこでは、Pythonライブラリ(およびその他のもの)のS3バケットを指定できます。その部分についてはまだ自分で試したことはありませんが、それはあなたが探しているものだと思いますために。

1
MadCityDev

pythonモジュールをAWS GLUE ETLジョブに統合する場合は、それを実行できます。必要なPythonモジュールを使用できます。Glueは他にないのでPython実行環境のあるサーバーレス。SO必要なのは、pip install -t /path/to/your/dircetoryを使用してscrptが必要とするモジュールをパッケージ化することだけです。次に、s3にアップロードします。そして、AWS Glueジョブの作成中に、s3スクリプト、一時的な場所をポイントした後、高度なジョブパラメータオプションに移動すると、そこにpython_librariesオプションが表示されます。 ここに画像の説明を入力してください python s3にアップロードしたモジュールパッケージ。

0
Vin Odh

選ばれた答えは2019年以降もはや真実ではありません

awswranglerが必要です。接着剤とラムダでpandasを使用できます

https://github.com/awslabs/aws-data-wrangler

AWS Lambda Layerを使用してインストールする

https://aws-data-wrangler.readthedocs.io/en/latest/install.html#setting-up-lambda-layer

例:標準Pandas ETL

import pandas
import awswrangler as wr

df = pandas.read_...  # Read from anywhere

# Typical Pandas, Numpy or Pyarrow transformation HERE!

wr.pandas.to_parquet(  # Storing the data and metadata to Data Lake
    dataframe=df,
    database="database",
    path="s3://...",
    partition_cols=["col_name"],
)
0
Jingkun

特定のバージョンをインストールするには(たとえば、AWS Glue python job)の場合)、 pythonパッケージ、たとえばパッケージ「pg8000」のページに https://pypi.org/project/pg8000/1.12.5/#files

次に、適切なバージョンを選択し、リンクをファイルにコピーして、以下のスニペットに貼り付けます。

import os
import site
from setuptools.command import easy_install
install_path = os.environ['GLUE_INSTALLATION']

easy_install.main( ["--install-dir", install_path, "https://files.pythonhosted.org/packages/83/03/10902758730d5cc705c0d1dd47072b6216edc652bc2e63a078b58c0b32e6/pg8000-1.12.5.tar.gz"] )
reload(site)
0
Sergey Nasonov