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 dapat bekerja dengan Delta Lake.
Versi image Dataproc yang kompatibel
Anda dapat menginstal komponen Delta Lake di cluster Dataproc yang dibuat dengan versi image Dataproc 2.2.46 dan versi image yang lebih baru.
Lihat Versi Dataproc yang didukung untuk 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 untuk bekerja 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 CLI, atau Dataproc API. Google Cloud
Konsol
- Di konsol Google Cloud , buka halaman
Create a cluster Dataproc.
Panel Set up cluster dipilih.
- Di bagian Components, di 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 pembacaan dan penulisan data menggunakan tabel Delta Lake.
Tabel Delta Lake
Menulis ke tabel Delta Lake
Anda dapat menggunakan DataFrame Spark
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 isinya.
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 untuk bekerja dengan tabel eksternal Hive.
Untuk mengetahui 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. Langkah ini dapat memuat tabel Delta dan mengekstrak metadatanya. 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;