Anda dapat menginstal komponen tambahan seperti Delta Lake saat membuat cluster Dataproc menggunakan fitur Komponen opsional. Halaman ini menjelaskan cara menginstal komponen Delta Lake secara opsional di cluster Dataproc.
Saat diinstal di cluster Dataproc, komponen Delta Lake akan menginstal library Delta Lake dan mengonfigurasi Spark dan Hive di cluster agar berfungsi dengan Delta Lake.
Versi image Dataproc yang kompatibel
Anda dapat menginstal komponen Delta Lake di cluster Dataproc yang dibuat dengan versi gambar Dataproc 2.2.46 dan versi gambar yang lebih baru.
Lihat Versi Dataproc yang didukung untuk mengetahui versi komponen Delta Lake yang disertakan dalam rilis image Dataproc.
Properti terkait Delta Lake
Saat Anda membuat cluster Dataproc dengan komponen Delta Lake diaktifkan, properti Spark berikut dikonfigurasi agar berfungsi dengan Delta Lake.
File konfigurasi | Properti | Nilai default |
---|---|---|
/etc/spark/conf/spark-defaults.conf |
spark.sql.extensions |
io.delta.sql.DeltaSparkSessionExtension |
/etc/spark/conf/spark-defaults.conf |
spark.sql.catalog.spark_catalog |
org.apache.spark.sql.delta.catalog.DeltaCatalog |
Menginstal komponen
Instal komponen saat Anda membuat cluster Dataproc menggunakan konsol Google Cloud , Google Cloud CLI, atau Dataproc API.
Konsol
- Di Google Cloud console, buka halaman Create a cluster Dataproc.
Panel Siapkan cluster dipilih.
- Di bagian Components, pada bagian Optional components, pilih Delta Lake dan komponen opsional lainnya untuk diinstal di cluster Anda.
gcloud CLI
Untuk membuat cluster Dataproc yang menyertakan komponen Delta Lake, gunakan perintah gcloud dataproc clusters create dengan flag --optional-components
.
gcloud dataproc clusters create CLUSTER_NAME \ --optional-components=DELTA \ --region=REGION \ ... other flags
Catatan:
- CLUSTER_NAME: Tentukan nama cluster.
- REGION: Tentukan region Compute Engine tempat cluster akan berada.
REST API
Komponen Delta Lake dapat ditentukan melalui Dataproc API menggunakan SoftwareConfig.Component sebagai bagian dari permintaan clusters.create.
Contoh penggunaan
Bagian ini memberikan contoh operasi baca dan tulis data menggunakan tabel Delta Lake.
Tabel Delta Lake
Menulis ke tabel Delta Lake
Anda dapat menggunakan Spark DataFrame
untuk menulis data ke tabel Delta Lake. Contoh berikut membuat DataFrame
dengan data contoh, membuat tabel Delta Lake my_delta_table
di Cloud Storage, lalu menulis data ke tabel Delta Lake.
PySpark
# Create a DataFrame with sample data.
data = spark.createDataFrame([(1, "Alice"), (2, "Bob")], ["id", "name"])
# Create a Delta Lake table in Cloud Storage.
spark.sql("""CREATE TABLE IF NOT EXISTS my_delta_table (
id integer,
name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table'""")
# Write the DataFrame to the Delta Lake table in Cloud Storage.
data.writeTo("my_delta_table").append()
Scala
// Create a DataFrame with sample data.
val data = Seq((1, "Alice"), (2, "Bob")).toDF("id", "name")
// Create a Delta Lake table in Cloud Storage.
spark.sql("""CREATE TABLE IF NOT EXISTS my_delta_table (
id integer,
name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table'""")
// Write the DataFrame to the Delta Lake table in Cloud Storage.
data.write.format("delta").mode("append").saveAsTable("my_delta_table")
Spark SQL
CREATE TABLE IF NOT EXISTS my_delta_table (
id integer,
name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table';
INSERT INTO my_delta_table VALUES ("1", "Alice"), ("2", "Bob");
Membaca dari tabel Delta Lake
Contoh berikut membaca my_delta_table
dan menampilkan kontennya.
PySpark
# Read the Delta Lake table into a DataFrame.
df = spark.table("my_delta_table")
# Display the data.
df.show()
Scala
// Read the Delta Lake table into a DataFrame.
val df = spark.table("my_delta_table")
// Display the data.
df.show()
Spark SQL
SELECT * FROM my_delta_table;
Hive dengan Delta Lake
Menulis ke Tabel Delta di Hive.
Komponen opsional Dataproc Delta Lake telah dikonfigurasi sebelumnya agar dapat berfungsi dengan tabel eksternal Hive.
Untuk informasi selengkapnya, lihat Konektor Hive.
Jalankan contoh di klien beeline.
beeline -u jdbc:hive2://
Buat tabel Spark Delta Lake.
Tabel Delta Lake harus dibuat menggunakan Spark sebelum tabel eksternal Hive dapat mereferensikannya.
CREATE TABLE IF NOT EXISTS my_delta_table (
id integer,
name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table';
INSERT INTO my_delta_table VALUES ("1", "Alice"), ("2", "Bob");
Buat tabel eksternal Hive.
SET hive.input.format=io.delta.hive.HiveInputFormat;
SET hive.tez.input.format=io.delta.hive.HiveInputFormat;
CREATE EXTERNAL TABLE deltaTable(id INT, name STRING)
STORED BY 'io.delta.hive.DeltaStorageHandler'
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table';
Catatan:
- Class
io.delta.hive.DeltaStorageHandler
mengimplementasikan API sumber data Hive. Fungsi ini dapat memuat tabel Delta dan mengekstrak metadata-nya. Jika skema tabel dalam pernyataanCREATE TABLE
tidak konsisten dengan metadata Delta Lake yang mendasarinya, error akan ditampilkan.
Membaca dari tabel Delta Lake di Hive.
Untuk membaca data dari tabel Delta, gunakan pernyataan SELECT
:
SELECT * FROM deltaTable;
Menghapus tabel Delta Lake.
Untuk menghapus tabel Delta, gunakan pernyataan DROP TABLE
:
DROP TABLE deltaTable;