Puoi installare componenti aggiuntivi come Delta Lake quando crei un cluster Dataproc utilizzando la funzionalità Componenti facoltativi. Questa pagina descrive come installare facoltativamente il componente Delta Lake su un cluster Dataproc.
Se installato su un cluster Dataproc, il componente Delta Lake installa le librerie Delta Lake e configura Spark e Hive nel cluster per funzionare con Delta Lake.
Versioni immagine Dataproc compatibili
Puoi installare il componente Delta Lake sui cluster Dataproc creati con la versione immagine di Dataproc 2.2.46 e versioni immagine successive.
Consulta la sezione Versioni Dataproc supportate per la versione del componente Delta Lake inclusa nelle release delle immagini Dataproc.
Proprietà correlate a Delta Lake
Quando crei un cluster Dataproc con il componente Delta Lake abilitato, le seguenti proprietà Spark sono configurate per funzionare con Delta Lake.
File di configurazione | Proprietà | Valore predefinito |
---|---|---|
/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 |
Installa il componente
Installa il componente quando crei un cluster Dataproc utilizzando la console Google Cloud , Google Cloud CLI o l'API Dataproc.
Console
- Nella console Google Cloud , vai alla pagina Dataproc
Crea un cluster.
Il riquadro Configura cluster è selezionato.
- Nella sezione Componenti, in Componenti facoltativi, seleziona Delta Lake e altri componenti facoltativi da installare sul cluster.
Interfaccia a riga di comando gcloud
Per creare un cluster Dataproc che includa il componente Delta Lake,
utilizza il comando
gcloud dataproc clusters create
con il flag --optional-components
.
gcloud dataproc clusters create CLUSTER_NAME \ --optional-components=DELTA \ --region=REGION \ ... other flags
Note:
- CLUSTER_NAME: specifica il nome del cluster.
- REGION: specifica una regione Compute Engine in cui si troverà il cluster.
API REST
Il componente Delta Lake può essere specificato tramite l'API Dataproc utilizzando SoftwareConfig.Component nell'ambito di una richiesta clusters.create.
Esempi di utilizzo
Questa sezione fornisce esempi di lettura e scrittura dei dati utilizzando le tabelle Delta Lake.
Tabella Delta Lake
Scrivi in una tabella Delta Lake
Puoi utilizzare Spark DataFrame
per scrivere dati in una tabella Delta Lake. Gli esempi seguenti creano un DataFrame
con dati di esempio, creano una tabella Delta Lake in
Cloud Storage e poi scrivono i dati nella tabella Delta Lake.my_delta_table
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");
Leggere da una tabella Delta Lake
Gli esempi riportati di seguito leggono my_delta_table
e ne visualizzano i contenuti.
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 con Delta Lake
Scrivi in una tabella Delta in Hive.
Il componente facoltativo Dataproc Delta Lake è preconfigurato per funzionare con le tabelle esterne Hive.
Per saperne di più, vedi Connettore Hive.
Esegui gli esempi in un client beeline.
beeline -u jdbc:hive2://
Crea una tabella Spark Delta Lake.
La tabella Delta Lake deve essere creata utilizzando Spark prima che una tabella esterna Hive possa farvi riferimento.
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");
Crea una tabella esterna 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';
Note:
- La classe
io.delta.hive.DeltaStorageHandler
implementa le API dell'origine dati Hive. Può caricare una tabella Delta ed estrarne i metadati. Se lo schema della tabella nell'istruzioneCREATE TABLE
non è coerente con i metadati Delta Lake sottostanti, viene generato un errore.
Legge da una tabella Delta Lake in Hive.
Per leggere i dati da una tabella Delta, utilizza un'istruzione SELECT
:
SELECT * FROM deltaTable;
Elimina una tabella Delta Lake.
Per eliminare una tabella Delta, utilizza l'istruzione DROP TABLE
:
DROP TABLE deltaTable;