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.
-
Buat file,
configurations.json
, dengan konten berikut:[{"Classification":"delta-defaults", "Properties":{"delta.enabled":"true"} }]
-
Buat cluster dengan konfigurasi berikut, ganti contoh Amazon S3
bucket path
dansubnet 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.
-
Connect ke node utama menggunakan SSH. Untuk informasi selengkapnya, lihat Connect ke node utama menggunakan SSH di Amazon EMR Management Guide.
-
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.
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
ddf = spark.table("delta_table")
ddf.show()