PythonとAWS Glueを使用してAthenaテーブルをクエリする方法について説明します。この記事では、Python Shell Jobsの使用方法、Athenaテーブルからデータを読み取る方法、およびPython Shellジョブタイプで実行可能なコードの書き換え方法について説明します。
Python Shell Jobsとは
Python Shell JobsはAWS Glueで導入されました。これにより、Amazon AthenaなどのサービスにSQLクエリを送信するためのPythonシェルジョブを使用できます。
Athenaテーブルからデータを読み取る
Athenaテーブルからデータを読み取るための一例を以下に示します:
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
glueContext = GlueContext(SparkContext.getOrCreate())
persons = glueContext.create_dynamic_frame.from_catalog(
database="legislators",
table_name="persons_json"
)
print("Count: ", persons.count())
persons.printSchema()
ただし、このコードはSparkを使用していますが、Python Shellでは通常利用できるライブラリがありません。
Python Shellジョブタイプでのコードの書き換え
Python Shellジョブタイプで上記のコードを実行可能にするためには、Boto 3を使用してデータをクエリし、Pandasを使用してそれをデータフレームに読み込む必要があります。
以上がPythonとAWS Glueを使用してAthenaテーブルをクエリする方法についての基本的な説明です。詳細な情報や具体的な手順については、各種公式ドキュメンテーションをご覧ください。