Menggunakan format ORC di AWS Glue - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan format ORC di AWS Glue

AWSGlue mengambil data dari sumber dan menulis data ke target yang disimpan dan diangkut dalam berbagai format data. Jika data Anda disimpan atau diangkut dalam format data ORC, dokumen ini memperkenalkan fitur yang tersedia untuk menggunakan data Anda di Glue. AWS

AWSGlue mendukung menggunakan format ORC. Format ini adalah format data berbasis kolom yang berorientasi kinerja. Untuk pengenalan format oleh otoritas standar lihat, Apache Orc.

Anda dapat menggunakan AWS Glue untuk membaca file ORC dari Amazon S3 dan dari sumber streaming serta menulis file ORC ke Amazon S3. Anda dapat membaca dan menulis bzip dan gzip mengarsipkan yang berisi file ORC dari S3. Anda mengonfigurasi perilaku kompresi pada Parameter koneksi S3 alih-alih dalam konfigurasi yang dibahas di halaman ini.

Tabel berikut menunjukkan operasi AWS Glue umum mana yang mendukung opsi format ORC.

Baca Tulis Streaming dibaca Kelompokkan file kecil Bookmark tugas
Didukung Didukung Didukung Tidak didukung Didukung *

* Didukung dalam AWS Glue versi 1.0+

Contoh: Baca file atau folder ORC dari S3

Prasyarat: Anda akan memerlukan jalur S3 (s3path) ke file atau folder ORC yang ingin Anda baca.

Konfigurasi: Dalam opsi fungsi Anda, tentukanformat="orc". Dalam Andaconnection_options, gunakan paths kunci untuk menentukan Andas3path. Anda dapat mengonfigurasi bagaimana pembaca berinteraksi dengan S3 di file. connection_options Untuk detailnya, lihat Jenis dan opsi koneksi untuk ETL di AWS Glue:Referensi opsi koneksi Amazon S3.

Berikut skrip AWS Glue ETL menunjukkan proses membaca file ORC atau folder dari S3:

Python

Untuk contoh ini, gunakan metode 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" )

Anda juga dapat menggunakan DataFrames dalam script (pyspark.sql.DataFrame).

dataFrame = spark.read\ .orc("s3://s3path")
Scala

Untuk contoh ini, gunakan operasi 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() } }

Anda juga dapat menggunakan DataFrames dalam script (pyspark.sql.DataFrame).

val dataFrame = spark.read .orc("s3://s3path")

Contoh: Tulis file dan folder ORC ke S3

Prasyarat: Anda akan memerlukan initialized DataFrame () atau ()dataFrame. DynamicFrame dynamicFrame Anda juga akan membutuhkan jalur output S3 yang Anda harapkan,s3path.

Konfigurasi: Dalam opsi fungsi Anda, tentukanformat="orc". Dalam opsi koneksi Anda, gunakan paths kunci untuk menentukans3path. Anda selanjutnya dapat mengubah cara penulis berinteraksi dengan S3 di. connection_options Untuk detailnya, lihat Opsi format data untuk input dan output ETL di GlueAWS:. Referensi opsi koneksi Amazon S3 Contoh kode berikut menunjukkan proses:

Python

Untuk contoh ini, gunakan metode 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" } )

Anda juga dapat menggunakan DataFrames dalam script (pyspark.sql.DataFrame).

df.write.orc("s3://s3path/")
Scala

Untuk contoh ini, gunakan metode 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) } }

Anda juga dapat menggunakan DataFrames dalam script (pyspark.sql.DataFrame).

df.write.orc("s3://s3path/")

Referensi konfigurasi ORC

Tidak ada nilai format_options untuk format="orc". Namun demikian, setiap pilihan yang diterima oleh kode SparkSQL yang mendasari dapat diteruskan ke sana dengan cara parameter peta connection_options.