AWS Glue
開発者ガイド

AWS Glue での ETL 入力および出力の形式オプション

AWS Glue の PySpark と Scala のさまざまなメソッドや変換では、format パラメータと format_options パラメータを使用して入力/出力形式を指定します。これらのパラメータでは以下の値を使用できます。

format="avro"

この値は、Apache Avro データ形式を指定します。

format="avro"format_options 値はありません。

format="csv"

この値は、データ形式として comma-separated-values を指定します (例については、RFC 4180 および RFC 7111 を参照してください)。

format="csv" には、以下の format_options 値を使用できます。

  • separator: 区切り記号文字を指定します。デフォルトではカンマ ',' ですが、他の任意の文字を指定できます。

  • escaper: エスケープに使用する文字を指定します。デフォルト値は "none" です。有効にすると、直後の文字はそのまま使用されます。ただし、よく知られている小さいエスケープセット (\n\r\t\0) を除きます。

  • quoteChar: 引用に使用する文字を指定します。デフォルト値は二重引用符 '"' です。引用を完全に無効にするには、これを '-1' に設定します。

  • multiline: 単一のレコードが複数行にまたがることができるかどうかを指定するブール値。これが発生するのは、フィールドに引用符で囲まれた改行文字がある場合などです。複数行にまたがるレコードがある場合は、このオプションを "true" に設定する必要があります。デフォルト値は "false" であり、解析時によりアグレッシブなファイル分割を可能にします。

  • withHeader: 最初の行をヘッダーとして扱うかどうかを指定するブール値。デフォルト値は "false" です。このオプションは DynamicFrameReader クラスで使用できます。

  • writeHeader: ヘッダーを出力に書き込むかどうかを指定するブール値。デフォルト値は "true" です。このオプションは DynamicFrameWriter クラスで使用できます。

  • skipFirst: 最初のデータ行をスキップするかどうかを指定するブール値。デフォルト値は "false" です。

format="ion"

この値は、データ形式として Amazon Ion を指定します。詳細については、Amazon Ion の仕様に関するドキュメントを参照してください。

現在 AWS Glue は出力で ion をサポートしていません。

format="ion"format_options 値はありません。

format="grokLog"

この値は、1 つ以上の Logstash grok パターンで指定されたログデータ形式を指定します (例については、Logstash リファレンス [6.2]: Grok フィルタプラグインのドキュメントを参照してください)。

現在 AWS Glue は出力で groklog をサポートしていません。

format="grokLog" には、以下の format_options 値を使用できます。

  • logFormat: ログの形式と一致する grok パターンを指定します。

  • customPatterns: ここで使用する追加の grok パターンを指定します。

  • MISSING: 欠落した値の識別に使用するシグナルを指定します。デフォルト: '-'

  • LineCount: 各ログレコードの行数を指定します。デフォルト値は '1' です。現在 1 行のレコードのみがサポートされています。

  • StrictMode: 厳格モードを有効にするかどうかを指定するブール値。厳格モードでは、リーダーは自動的な型変換や復旧を行いません。デフォルト値は "false" です。

format="json"

この値は JSON(JavaScript Object Notation) データ形式を指定します。

現在、AWS Glue は json 出力で format_options をサポートしていません。

format="json" には、以下の format_options 値を使用できます。

  • jsonPath: レコードに読み込むオブジェクトを識別する JsonPath 式。これは、ファイルが外部配列内にネストされたレコードを含む場合に役立ちます。たとえば、次の JsonPath 式のターゲットは、JSON オブジェクトの id フィールドです。

    format="json", format_options={"jsonPath": "$.id"}
  • multiline: 単一のレコードが複数行にまたがることができるかどうかを指定するブール値。これが発生するのは、フィールドに引用符で囲まれた改行文字がある場合などです。複数行にまたがるレコードがある場合は、このオプションを "true" に設定する必要があります。デフォルト値は "false" であり、解析時によりアグレッシブなファイル分割を可能にします。

format="orc"

この値は、データ形式として Apache ORC を指定します。詳細については、「LanguageManual ORC」を参照してください。

format="orc"format_options 値はありません。ただし、基になる SparkSQL コードで受け入れられるオプションは、connection_options マップパラメータを介して渡すことができます。

format="parquet"

この値は、データ形式として Apache Parquet を指定します。

format="parquet"format_options 値はありません。ただし、基になる SparkSQL コードで受け入れられるオプションは、connection_options マップパラメータを介して渡すことができます。

format="glueparquet"

この値は、動的フレーム用に最適化されたカスタム Parquet ライタータイプをデータ形式として指定します。書き込む前に事前計算スキーマは必要ありません。データが到着すると、glueparquet はスキーマを動的に計算して変更します。

format="glueparquet" には、以下の format_options 値を使用できます。

  • compression: Parquet ファイルを書き込むときに使用する圧縮コーデックを指定します。デフォルト値は "snappy" です。

  • blockSize: メモリにバッファされる行グループのサイズを指定します。デフォルト値は "128MB" です。

  • pageSize: 単一のレコードにアクセスするために完全に読み取る必要がある最小単位のサイズを指定します。デフォルト値は "1MB" です。

制約事項:

  • glueparquet スキーマの縮小または拡張のみをサポートし、タイプの変更はサポートしません。

  • glueparquet はスキーマ専用ファイルを格納できません。

format="xml"

この値は、データ形式として XML を指定し、XML Data Source for Apache Spark パーサーのフォークを通じて解析されます。

現在、AWS Glue は出力用に "xml" をサポートしていません。

format="xml" には、以下の format_options 値を使用できます。

  • rowTag: 行として扱うファイル内の XML タグを指定します。行のタグを自己終了型にすることはできません。

  • encoding: 文字エンコードを指定します。デフォルト値は "UTF-8" です。

  • excludeAttribute: 要素の属性を除外するかどうかを指定するブール値。デフォルト値は "false" です。

  • treatEmptyValuesAsNulls: 空白を null 値として扱うかどうかを指定するブール値。デフォルト値は "false" です。

  • attributePrefix: 属性を要素から区別するための属性のプレフィックス。このプレフィックスをフィールド名として使用します。デフォルト値は "_" です。

  • valueTag: 要素内に子を持たない属性がある場合、値に使用するタグ。デフォルト: "_VALUE"

  • ignoreSurroundingSpaces: 値を囲む空白を無視するかどうかを指定するブール値。デフォルト値は "false" です。

このページの内容: