

# AWS Glue for Spark での入出力のデータ形式に関するオプション
<a name="aws-glue-programming-etl-format"></a>

これらのページでは、AWS Glue for Spark でサポートされているデータ形式の機能のサポートと設定パラメータについて説明します。この情報の使用と適用可能性の説明については、以下を参照してください。

## AWS Glue でのデータ形式間の機能のサポート
<a name="aws-glue-programming-etl-format-features"></a>

 各データ形式が、異なる AWS Glue の機能をサポートする場合があります。次の一般的な機能は、形式のタイプによってサポートされる場合とサポートされない場合があります。データ形式についてのドキュメントを参照し、当社の機能を活用して要件を満たす方法を理解してください。


|  |  | 
| --- |--- |
| 読み取り | AWS Glue では、コネクタなどのリソースを追加することなく、データ形式を認識し解釈できます。 | 
| 書き込み | AWS Glue では、リソースを追加することなく、この形式でデータを書き込むことができます。他の Spark 環境と同様に、サードパーティライブラリをジョブに含め、標準の Apache Spark 関数を使用してデータを書き込むことができます。ライブラリを含める方法の詳細については、「[AWS Glue での Python ライブラリの使用](aws-glue-programming-python-libraries.md)」を参照してください。 | 
| ストリーミングの読み取り | AWS Glue は、Apache Kafka、Amazon Managed Streaming for Apache Kafka、または Amazon Kinesis メッセージストリームから、このデータ形式を認識して解釈できます。ストリームは一貫した形式でデータを表示することを想定しているため、DataFrames として読み込まれます。 | 
| 小さなファイルのグループ化 | AWS Glue は、AWS Glue 変換を実行する際にファイルをグループ化し、各ノードに送信されるバッチを処理できます。これにより、大量の小さなファイルを扱うワークロードのパフォーマンスを大幅に向上できます。詳細については、「[大きなグループの入力ファイルの読み取り](grouping-input-files.md)」を参照してください。 | 
| ジョブのブックマーク | AWS Glue は、ジョブブックマークを使用して、ジョブの実行間で同じデータセットに対して同じ作業を実行する変換の進行状況を追跡できます。これにより、最後のジョブ実行以降の新しいデータに対してのみ作業を行う必要があるデータセットを含むワークロードのパフォーマンスを向上させることができます。詳細については、「[ジョブのブックマークを使用した処理済みデータの追跡](monitor-continuations.md)」を参照してください。 | 

## AWS Glue でデータ形式を操作するために使用されるパラメータ
<a name="aws-glue-programming-etl-format-parameters"></a>

特定の AWS Glue 接続タイプは複数の `format` タイプをサポートしており、`GlueContext.write_dynamic_frame.from_options` のようなメソッドを使用する場合は、`format_options` オブジェクトを使用してデータ形式に関する情報を指定する必要があります。
+ `s3` - 詳細については、AWS Glue: [S3 接続パラメータ](aws-glue-programming-etl-connect-s3-home.md#aws-glue-programming-etl-connect-s3) の「Connection types and options for ETL」(ETL の接続タイプとオプション) を参照してください。また、Python でのこの接続タイプを容易にするメソッド [create\$1dynamic\$1frame\$1from\$1options](aws-glue-api-crawler-pyspark-extensions-glue-context.md#aws-glue-api-crawler-pyspark-extensions-glue-context-create_dynamic_frame_from_options) および [write\$1dynamic\$1frame\$1from\$1options](aws-glue-api-crawler-pyspark-extensions-glue-context.md#aws-glue-api-crawler-pyspark-extensions-glue-context-write_dynamic_frame_from_options) と、対応する Scala メソッド [def getSourceWithFormat](glue-etl-scala-apis-glue-gluecontext.md#glue-etl-scala-apis-glue-gluecontext-defs-getSourceWithFormat) および [def getSinkWithFormat](glue-etl-scala-apis-glue-gluecontext.md#glue-etl-scala-apis-glue-gluecontext-defs-getSinkWithFormat) についてのドキュメントもご覧ください。

  
+ `kinesis` - 詳細については、AWS Glue: [Kinesis 接続パラメータ](aws-glue-programming-etl-connect-kinesis-home.md#aws-glue-programming-etl-connect-kinesis) の「Connection types and options for ETL」(ETL の接続タイプとオプション) を参照してください。また、この接続タイプを容易にするメソッドについてのドキュメント: [create\$1data\$1frame\$1from\$1options](aws-glue-api-crawler-pyspark-extensions-glue-context.md#aws-glue-api-crawler-pyspark-extensions-glue-context-create-dataframe-from-options) と、対応する Scala メソッド [def createDataFrameFromOptions](glue-etl-scala-apis-glue-gluecontext.md#glue-etl-scala-apis-glue-gluecontext-defs-createDataFrameFromOptions) についてのドキュメントもご覧ください。
+ `kafka` - 詳細については、AWS Glue: [Kafka 接続パラメータ](aws-glue-programming-etl-connect-kafka-home.md#aws-glue-programming-etl-connect-kafka) の「Connection types and options for ETL」(ETL の接続タイプとオプション) を参照してください。また、この接続タイプを容易にするメソッドについてのドキュメント: [create\$1data\$1frame\$1from\$1options](aws-glue-api-crawler-pyspark-extensions-glue-context.md#aws-glue-api-crawler-pyspark-extensions-glue-context-create-dataframe-from-options) と、対応する Scala メソッド [def createDataFrameFromOptions](glue-etl-scala-apis-glue-gluecontext.md#glue-etl-scala-apis-glue-gluecontext-defs-createDataFrameFromOptions) についてのドキュメントもご覧ください。

一部の接続タイプでは、`format_options` は必要ありません。例えば、通常の使用においては、リレーショナルデータベースへの JDBC 接続では整合性のある表形式のデータ形式でデータを取得します。したがって、JDBC 接続からの読み取りでは、`format_options` は必要ありません。

Glue でデータを読み書きする一部のメソッドでは、`format_options` が必要です。例えば、AWS Glue クローラーで `GlueContext.create_dynamic_frame.from_catalog` を使用します。クローラーによってデータの形式が決定されます。クローラーを使用する場合、AWS Glue 分類子がデータを調べ、データ形式を表す方法について賢く判断します。次に、データの表現を AWS Glue Data Catalog に保存します。これを AWS Glue ETL スクリプト内で使用し、`GlueContext.create_dynamic_frame.from_catalog` メソッドによってデータを取得できます。クローラーを使用すると、データ形式に関する情報を手動で指定する必要がなくなります。

AWS Lake Formation government table にアクセスするジョブの場合、AWS Glue は Lake Formation のgovernment table でサポートされているすべてのフォーマットの読み書きをサポートします。現在サポートされている AWS Lake Formation government table のフォーマット一覧は、「*AWS Lake Formation デベロッパーガイド*」の「[ガバメントテーブルの注意点と制限事項](https://docs.aws.amazon.com/lake-formation/latest/dg/governed-table-restrictions.html)」を参照してください。

**注記**  
Apache Parquet を書くために、AWS Glue ETL では、ダイナミックフレーム用に最適化されたカスタム Parquet ライタータイプのオプションを指定することで、管理されたテーブルへの書き込みのみをサポートします。`parquet` フォーマットでガバメントテーブルに書き込む場合は、テーブルパラメータの `useGlueParquetWriter` の値でキー `true` に追加する必要があります。

**Topics**
+ [AWS Glue でのデータ形式間の機能のサポート](#aws-glue-programming-etl-format-features)
+ [AWS Glue でデータ形式を操作するために使用されるパラメータ](#aws-glue-programming-etl-format-parameters)
+ [AWS Glue で CSV 形式を使用する](aws-glue-programming-etl-format-csv-home.md)
+ [AWS Glue で Parquet 形式を使用する](aws-glue-programming-etl-format-parquet-home.md)
+ [AWS Glue で XML 形式を使用する](aws-glue-programming-etl-format-xml-home.md)
+ [AWS Glue で Avro 形式を使用する](aws-glue-programming-etl-format-avro-home.md)
+ [AWS Glue で grokLog 形式を使用する](aws-glue-programming-etl-format-grokLog-home.md)
+ [AWS Glue で Ion 形式を使用する](aws-glue-programming-etl-format-ion-home.md)
+ [AWS Glue で JSON 形式を使用する](aws-glue-programming-etl-format-json-home.md)
+ [AWS Glue で ORC 形式を使用する](aws-glue-programming-etl-format-orc-home.md)
+ [AWS Glue ETL ジョブでのデータレイクフレームワークの使用](aws-glue-programming-etl-datalake-native-frameworks.md)
+ [共有設定リファレンス](#aws-glue-programming-etl-format-shared-reference)

## 共有設定リファレンス
<a name="aws-glue-programming-etl-format-shared-reference"></a>

 形式タイプには次の `format_options` 値を使用できます。
+ `attachFilename` — 列名として使用する適切な形式の文字列。このオプションを指定すると、レコードのソースファイルの名前がレコードに追加されます。パラメータ値は列名として使用されます。
+ `attachTimestamp` — 列名として使用する適切な形式の文字列。このオプションを指定すると、レコードのソースファイルの変更時刻がレコードに追加されます。パラメータ値は列名として使用されます。