翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Glue はソースからデータを取得し、さまざまなデータ形式で保存および転送されたターゲットにデータを書き込みます。このドキュメントでは、データが ORC データ形式で保存または転送される場合に、AWS Glue でデータを使用する際に利用できる機能について説明します。
AWS Glue は、ORC 形式の使用をサポートしています。この形式は、パフォーマンス指向の列ベースのデータ形式です。標準局による形式の概要については、「Apache Orc」を参照してください。
AWS Glue を使用して、Amazon S3 およびストリーミングソースから ORC ファイルを読み取り、Amazon S3 に ORC ファイルを書き込むことができます。S3 から、ORC ファイルを含む bzip
および gzip
アーカイブを読み書きすることができます。このページで説明する設定ではなく、S3 接続パラメータ 上で圧縮動作を設定します。
次の表は、ORC 形式のオプションをサポートする一般的な AWS Glue の機能を示しています。
読み込み |
書き込み |
ストリーミングの読み取り |
小さなファイルのグループ化 |
ジョブのブックマーク |
サポート |
サポート対象 |
サポート |
サポートされていません |
サポート対象* |
*AWS Glue バージョン 1.0+ でサポート
前提条件: 読み取る ORC ファイルまたはフォルダへの S3 パス (s3path
) が必要です。
設定: 関数オプションで format="orc"
を指定します。connection_options
で、paths
キーを使用して s3path
を指定します。リーダーが S3 とやり取りする方法は、connection_options
で設定できます。詳細については、AWS Glue: Amazon S3 接続のオプションのリファレンス の「ETL の接続タイプとオプション」を参照してください。
次の AWS Glue ETL スクリプトは、S3 から ORC ファイルまたはフォルダを読み取るプロセスを示しています。
- Python
-
この例では create_dynamic_frame.from_options メソッドを使用します。
from pyspark.context import SparkContext
from awsglue.context import GlueContext
sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
dynamicFrame = glueContext.create_dynamic_frame.from_options(
connection_type="s3",
connection_options={"paths": ["s3://s3path
"]},
format="orc"
)
スクリプト (pyspark.sql.DataFrame
) では DataFrame を使用することもできます。
dataFrame = spark.read\
.orc("s3://s3path
")
- Scala
-
この例では getSourceWithFormat 操作を使用します。
import com.amazonaws.services.glue.util.JsonOptions
import com.amazonaws.services.glue.GlueContext
import org.apache.spark.sql.SparkContext
object GlueApp {
def main(sysArgs: Array[String]): Unit = {
val spark: SparkContext = new SparkContext()
val glueContext: GlueContext = new GlueContext(spark)
val dynamicFrame = glueContext.getSourceWithFormat(
connectionType="s3",
format="orc",
options=JsonOptions("""{"paths": ["s3://s3path
"]}""")
).getDynamicFrame()
}
}
スクリプト (pyspark.sql.DataFrame
) では DataFrame を使用することもできます。
val dataFrame = spark.read
.orc("s3://s3path
")
前提条件: 初期化された DataFrame (dataFrame
) または DynamicFrame (dynamicFrame
) が必要です。また、予想される S3 出力パスである s3path
も必要になります。
設定: 関数オプションで format="orc"
を指定します。接続オプションでは、s3path
を指定するための paths
キーを使用します。ライターが S3 と対話する方法を、connection_options
でさらに詳しく変更することができます。詳細については、AWS Glue: Amazon S3 接続のオプションのリファレンス の「ETL の入力および出力のデータ形式オプション」を参照してください。次のコード例は、プロセスを示しています。
- Python
-
この例では write_dynamic_frame.from_options メソッドを使用します。
from pyspark.context import SparkContext
from awsglue.context import GlueContext
sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
glueContext.write_dynamic_frame.from_options(
frame=dynamicFrame
,
connection_type="s3",
format="orc",
connection_options={
"path": "s3://s3path
"
}
)
スクリプト (pyspark.sql.DataFrame
) では DataFrame を使用することもできます。
df.write.orc("s3://s3path
/")
- Scala
-
この例では getSinkWithFormat メソッドを使用します。
import com.amazonaws.services.glue.util.JsonOptions
import com.amazonaws.services.glue.{DynamicFrame, GlueContext}
import org.apache.spark.SparkContext
object GlueApp {
def main(sysArgs: Array[String]): Unit = {
val spark: SparkContext = new SparkContext()
val glueContext: GlueContext = new GlueContext(spark)
glueContext.getSinkWithFormat(
connectionType="s3",
options=JsonOptions("""{"path": "s3://s3path
"}"""),
format="orc"
).writeDynamicFrame(dynamicFrame
)
}
}
スクリプト (pyspark.sql.DataFrame
) では DataFrame を使用することもできます。
df.write.orc("s3://s3path
/")
format="orc"
の format_options
値はありません。ただし、基になる SparkSQL コードで受け入れられるオプションは、connection_options
マップパラメータを介して渡すことができます。