DynamicFrameReader クラス
— 方法 —
__init__
__init__(glue_context)
glue_context- 使用する GlueContext クラス。
from_rdd
from_rdd(data, name, schema=None, sampleRatio=None)
Resilient Distributed Dataset (RDD) から DynamicFrame を読み取ります。
data- 読み取り元のデータセット。name- 読み取り元の名前。schema- 読み取るスキーマ (オプション)。sampleRatio- サンプル比率 (オプション)。
from_options
from_options(connection_type, connection_options={}, format=None,
format_options={}, transformation_ctx="")
指定された接続と形式を使用して DynamicFrame を読み込みます。
connection_type- 接続タイプ。有効な値には、s3、mysql、postgresql、redshift、sqlserver、oracle、dynamodb、snowflakeが含まれています。connection_options- 接続オプション (パスやデータベーステーブルなど) (オプション)。詳細については、「AWS Glue for Spark で ETL の接続タイプとオプション」を参照してください。s3のconnection_typeの場合、Amazon S3 のパスは配列で定義されます。connection_options = {"paths": [ "s3://amzn-s3-demo-bucket/object_a", "s3://amzn-s3-demo-bucket/object_b"]}JDBC 接続の場合、いくつかのプロパティを定義する必要があります。データベース名は URL の一部である必要があることに注意してください。オプションで接続オプションに含めることができます。
警告
スクリプトにパスワードを保存することはお勧めしません。AWS Secrets Manager または AWS Glue データカタログから取得する場合には、
boto3を使用することを検討してください。connection_options = {"url": "jdbc-url/database", "user": "username", "password":passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}並列読み込みを実行する JDBC 接続の場合、ハッシュフィールドオプションを設定できます。例:
connection_options = {"url": "jdbc-url/database", "user": "username", "password":passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path" , "hashfield": "month"}詳しくは、「JDBC テーブルからの並列読み取り」を参照してください。
format– 形式の仕様 (オプション)。これは、Amazon Simple Storage Service (Amazon S3)、または複数の形式をサポートする AWS Glue 接続で使用されます。サポートされる形式については、「AWS Glue for Spark での入出力のデータ形式に関するオプション」を参照してください。format_options– 指定された形式についてのオプション。サポートされる形式については、「AWS Glue for Spark での入出力のデータ形式に関するオプション」を参照してください。transformation_ctx- 使用する変換コンテキスト (オプション)。push_down_predicate– データセットのすべてのファイルをリストアップして読み取る必要がないフィルタパーティション。詳細については、「Pre-Filtering Using Pushdown Predicates」を参照してください。
from_catalog
from_catalog(database, table_name, redshift_tmp_dir="", transformation_ctx="", push_down_predicate="", additional_options={})
指定されたカタログの名前空間とテーブル名を使用して DynamicFrame を読み取ります。
database- 読み取り元のデータベース。table_name- 読み取り元のテーブルの名前。redshift_tmp_dir– 使用する Amazon Redshift の一時ディレクトリ (Redshift からデータを読み取らない場合はオプション)。transformation_ctx- 使用する変換コンテキスト (オプション)。push_down_predicate– データセットのすべてのファイルをリストアップして読み取る必要がないフィルタパーティション。詳しくは、「プッシュダウン述語を使用した事前フィルタ処理」を参照してください。additional_options– AWS Glue で使用する追加のオプション。-
並列読み込みを実行する JDBC 接続を使用するには、
hashfield、hashexpression、またはhashpartitionsオプションを設定できます。例:additional_options = {"hashfield": "month"}詳しくは、「JDBC テーブルからの並列読み取り」を参照してください。
-
インデックス列に基づいたフィルタリングのためにカタログ式を渡すには、
catalogPartitionPredicateオプションを使用できます。catalogPartitionPredicate– カタログ式を渡して、インデックス列に基づいたフィルタリングができます。これにより、フィルタリングをサーバー側で処理できます。詳細については、「AWS Glue パーティションインデックス」を参照してください。push_down_predicateとcatalogPartitionPredicateでは、異なる構文が使用されることに注意してください。前者では Spark SQL の標準構文を使用し、後者では JSQL パーサーを使用します。詳細については、「AWS Glue での ETL 出力のパーティションの管理」を参照してください。
-