Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Gunakan cluster Delta Lake dengan Spark - Amazon EMR

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

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

Gunakan cluster Delta Lake dengan Spark

Dimulai dengan Amazon EMR versi 6.9.0, Anda dapat menggunakan Delta Lake dengan cluster Spark Anda tanpa perlu tindakan bootstrap. Untuk Amazon EMR rilis 6.8.0 dan yang lebih rendah, Anda dapat menggunakan tindakan bootstrap untuk pra-instal dependensi yang diperlukan.

Contoh berikut menggunakan AWS CLI untuk bekerja dengan Delta Lake pada cluster Amazon EMR Spark.

Untuk menggunakan Delta Lake di Amazon EMR dengan, AWS Command Line Interface pertama buat cluster. Untuk informasi tentang cara menentukan klasifikasi Delta Lake AWS Command Line Interface, lihat Menyediakan konfigurasi menggunakan AWS Command Line Interface saat Anda membuat klaster atau Menyediakan konfigurasi dengan Java SDK saat Anda membuat klaster.

  1. Buat file, configurations.json, dengan konten berikut:

    [{"Classification":"delta-defaults", "Properties":{"delta.enabled":"true"} }]
  2. Buat cluster dengan konfigurasi berikut, ganti contoh Amazon S3 bucket path dan subnet ID dengan milik Anda sendiri.

    aws emr create-cluster --release-label emr-6.9.0 --applications Name=Spark --configurations file://delta_configurations.json --region us-east-1 --name My_Spark_Delta_Cluster --log-uri s3://amzn-s3-demo-bucket/ --instance-type m5.xlarge --instance-count 2 --service-role EMR_DefaultRole_V2 --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0

    Atau, Anda dapat membuat cluster EMR Amazon dan aplikasi Spark dengan file berikut sebagai dependensi JAR dalam pekerjaan Spark:

    /usr/share/aws/delta/lib/delta-core.jar, /usr/share/aws/delta/lib/delta-storage.jar, /usr/share/aws/delta/lib/delta-storage-s3-dynamodb.jar
    catatan

    Jika Anda menggunakan Amazon EMR rilis 6.9.0 atau lebih tinggi, gunakan sebagai gantinya. /usr/share/aws/delta/lib/delta-spark.jar /usr/share/aws/delta/lib/delta-core.jar

    Untuk informasi selengkapnya, lihat Mengirimkan Aplikasi.

    Untuk menyertakan dependensi jar dalam pekerjaan Spark, Anda dapat menambahkan properti konfigurasi berikut ke aplikasi Spark:

    --conf “spark.jars=/usr/share/aws/delta/lib/delta-core.jar, /usr/share/aws/delta/lib/delta-storage.jar, /usr/share/aws/delta/lib/delta-storage-s3-dynamodb.jar"

    Untuk informasi selengkapnya tentang dependensi pekerjaan Spark, lihat Manajemen Ketergantungan.

    Jika Anda menggunakan Amazon EMR rilis 6.9.0 atau lebih tinggi, tambahkan konfigurasi sebagai gantinya. /usr/share/aws/delta/lib/delta-spark.jar

    --conf “spark.jars=/usr/share/aws/delta/lib/delta-spark.jar, /usr/share/aws/delta/lib/delta-storage.jar, /usr/share/aws/delta/lib/delta-storage-s3-dynamodb.jar"

Inisialisasi sesi Spark untuk Delta Lake

Contoh berikut menunjukkan cara meluncurkan shell Spark interaktif, menggunakan Spark submit, atau menggunakan Amazon EMR Notebooks untuk bekerja dengan Delta Lake di Amazon EMR.

spark-shell
  1. Connect ke node utama menggunakan SSH. Untuk informasi selengkapnya, lihat Connect ke node utama menggunakan SSH di Amazon EMR Management Guide.

  2. Masukkan perintah berikut untuk meluncurkan shell Spark. Untuk menggunakan PySpark shell, ganti spark-shell denganpyspark.

    spark-shell \ --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \ --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"

    Jika Anda menjalankan Amazon EMR rilis 6.15.0 atau lebih tinggi, Anda juga harus menggunakan konfigurasi berikut untuk menggunakan kontrol akses berbutir halus berdasarkan Lake Formation dengan Delta Lake.

    spark-shell \ --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension \ --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \ --conf spark.sql.catalog.spark_catalog.lf.managed=true
spark-submit
  1. Connect ke node utama menggunakan SSH. Untuk informasi selengkapnya, lihat Connect ke node utama menggunakan SSH di Amazon EMR Management Guide.

  2. Masukkan perintah berikut untuk meluncurkan sesi Spark untuk Delta Lake.

    spark-submit —conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" —conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"

    Jika Anda menjalankan Amazon EMR rilis 6.15.0 atau lebih tinggi, Anda juga harus menggunakan konfigurasi berikut untuk menggunakan kontrol akses berbutir halus berdasarkan Lake Formation dengan Delta Lake.

    spark-submit \ ` --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \ --conf spark.sql.catalog.spark_catalog.lf.managed=true
EMR Studio notebooks

Untuk menginisialisasi sesi Spark menggunakan notebook Amazon EMR Studio, konfigurasikan sesi Spark Anda menggunakan perintah ajaib %%configure di notebook Amazon EMR Anda, seperti pada contoh berikut. Untuk informasi selengkapnya, lihat Menggunakan sihir EMR Notebooks di Panduan Manajemen Amazon EMR.

%%configure -f { "conf": { "spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension", "spark.sql.catalog.spark_catalog": "org.apache.spark.sql.delta.catalog.DeltaCatalog" } }

Jika Anda menjalankan Amazon EMR rilis 6.15.0 atau lebih tinggi, Anda juga harus menggunakan konfigurasi berikut untuk menggunakan kontrol akses berbutir halus berdasarkan Lake Formation dengan Delta Lake.

%%configure -f { "conf": { "spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension", "spark.sql.catalog.spark_catalog": "org.apache.spark.sql.delta.catalog.DeltaCatalog", "spark.sql.catalog.spark_catalog.lf.managed": "true" } }
  1. Connect ke node utama menggunakan SSH. Untuk informasi selengkapnya, lihat Connect ke node utama menggunakan SSH di Amazon EMR Management Guide.

  2. Masukkan perintah berikut untuk meluncurkan shell Spark. Untuk menggunakan PySpark shell, ganti spark-shell denganpyspark.

    spark-shell \ --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \ --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"

    Jika Anda menjalankan Amazon EMR rilis 6.15.0 atau lebih tinggi, Anda juga harus menggunakan konfigurasi berikut untuk menggunakan kontrol akses berbutir halus berdasarkan Lake Formation dengan Delta Lake.

    spark-shell \ --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension \ --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \ --conf spark.sql.catalog.spark_catalog.lf.managed=true

Menulis ke meja Delta Lake

Contoh berikut menunjukkan cara membuat DataFrame dan menulisnya sebagai dataset Delta Lake. Contoh menunjukkan cara bekerja dengan dataset dengan shell Spark saat terhubung ke node utama menggunakan SSH sebagai pengguna hadoop default.

catatan

Untuk menempelkan sampel kode ke dalam shell Spark, ketik :paste pada prompt, tempel contoh, lalu tekanCTRL + D.

PySpark

Spark menyertakan shell berbasis Pythonpyspark,, yang dapat Anda gunakan untuk membuat prototipe program Spark yang ditulis dengan Python. Sama sepertispark-shell, panggil pyspark pada simpul utama.

## Create a DataFrame data = spark.createDataFrame([("100", "2015-01-01", "2015-01-01T13:51:39.340396Z"), ("101", "2015-01-01", "2015-01-01T12:14:58.597216Z"), ("102", "2015-01-01", "2015-01-01T13:51:40.417052Z"), ("103", "2015-01-01", "2015-01-01T13:51:40.519832Z")], ["id", "creation_date", "last_update_time"]) ## Write a DataFrame as a Delta Lake dataset to the S3 location spark.sql("""CREATE TABLE IF NOT EXISTS delta_table (id string, creation_date string, last_update_time string) USING delta location 's3://amzn-s3-demo-bucket/example-prefix/db/delta_table'"""); data.writeTo("delta_table").append()
Scala
import org.apache.spark.sql.SaveMode import org.apache.spark.sql.functions._ // Create a DataFrame val data = Seq(("100", "2015-01-01", "2015-01-01T13:51:39.340396Z"), ("101", "2015-01-01", "2015-01-01T12:14:58.597216Z"), ("102", "2015-01-01", "2015-01-01T13:51:40.417052Z"), ("103", "2015-01-01", "2015-01-01T13:51:40.519832Z")).toDF("id", "creation_date", "last_update_time") // Write a DataFrame as a Delta Lake dataset to the S3 location spark.sql("""CREATE TABLE IF NOT EXISTS delta_table (id string, creation_date string, last_update_time string) USING delta location 's3://amzn-s3-demo-bucket/example-prefix/db/delta_table'"""); data.write.format("delta").mode("append").saveAsTable("delta_table")
SQL
-- Create a Delta Lake table with the S3 location CREATE TABLE delta_table(id string, creation_date string, last_update_time string) USING delta LOCATION 's3://amzn-s3-demo-bucket/example-prefix/db/delta_table'; -- insert data into the table INSERT INTO delta_table VALUES ("100", "2015-01-01", "2015-01-01T13:51:39.340396Z"), ("101", "2015-01-01", "2015-01-01T12:14:58.597216Z"), ("102", "2015-01-01", "2015-01-01T13:51:40.417052Z"), ("103", "2015-01-01", "2015-01-01T13:51:40.519832Z");

Spark menyertakan shell berbasis Pythonpyspark,, yang dapat Anda gunakan untuk membuat prototipe program Spark yang ditulis dengan Python. Sama sepertispark-shell, panggil pyspark pada simpul utama.

## Create a DataFrame data = spark.createDataFrame([("100", "2015-01-01", "2015-01-01T13:51:39.340396Z"), ("101", "2015-01-01", "2015-01-01T12:14:58.597216Z"), ("102", "2015-01-01", "2015-01-01T13:51:40.417052Z"), ("103", "2015-01-01", "2015-01-01T13:51:40.519832Z")], ["id", "creation_date", "last_update_time"]) ## Write a DataFrame as a Delta Lake dataset to the S3 location spark.sql("""CREATE TABLE IF NOT EXISTS delta_table (id string, creation_date string, last_update_time string) USING delta location 's3://amzn-s3-demo-bucket/example-prefix/db/delta_table'"""); data.writeTo("delta_table").append()

Baca dari meja Delta Lake

PySpark
ddf = spark.table("delta_table") ddf.show()
Scala
val ddf = spark.table("delta_table") ddf.show()
SQL
SELECT * FROM delta_table;
ddf = spark.table("delta_table") ddf.show()
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.