Vous pouvez installer des composants supplémentaires tels que Delta Lake lorsque vous créez un cluster Dataproc à l'aide de la fonctionnalité Composants facultatifs. Cette page explique comment installer le composant Delta Lake sur un cluster Dataproc.
Lorsqu'il est installé sur un cluster Dataproc, le composant Delta Lake installe les bibliothèques Delta Lake et configure Spark et Hive dans le cluster pour qu'ils fonctionnent avec Delta Lake.
Versions d'image Dataproc compatibles
Vous pouvez installer le composant Delta Lake sur les clusters Dataproc créés avec la version d'image Dataproc 2.2.46 et les versions ultérieures.
Consultez la section Versions Dataproc compatibles pour connaître la version du composant Delta Lake incluse dans les versions d'image Dataproc.
Propriétés liées à Delta Lake
Lorsque vous créez un cluster Dataproc avec le composant Delta Lake activé, les propriétés Spark suivantes sont configurées pour fonctionner avec Delta Lake.
Fichier de configuration | Propriété | Valeur par défaut |
---|---|---|
/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 |
Installer le composant
Installez le composant lorsque vous créez un cluster Dataproc à l'aide de la console Google Cloud , de la Google Cloud CLI ou de l'API Dataproc.
Console
- Dans la console Google Cloud , accédez à la page Dataproc Créer un cluster.
Accéder à la page "Créer un cluster"
Le panneau Configurer un cluster est sélectionné.
- Dans la section Composants, sous Composants facultatifs, sélectionnez Delta Lake et les autres composants facultatifs à installer sur votre cluster.
CLI gcloud
Pour créer un cluster Dataproc incluant le composant Delta Lake, utilisez la commande gcloud dataproc clusters create avec l'option --optional-components
.
gcloud dataproc clusters create CLUSTER_NAME \ --optional-components=DELTA \ --region=REGION \ ... other flags
Remarques :
- CLUSTER_NAME : spécifiez le nom du cluster.
- REGION : spécifiez une région Compute Engine dans laquelle le cluster sera situé.
API REST
Le composant Delta Lake peut être spécifié via l'API Dataproc à l'aide de la propriété SoftwareConfig.Component dans le cadre d'une requête clusters.create.
Exemples d'utilisation
Cette section fournit des exemples de lecture et d'écriture de données à l'aide de tables Delta Lake.
Table Delta Lake
Écrire dans une table Delta Lake
Vous pouvez utiliser le DataFrame Spark pour écrire des données dans une table Delta Lake. Les exemples suivants créent un DataFrame
avec des exemples de données, créent une table Delta Lake my_delta_table
dans Cloud Storage, puis écrivent les données dans la table 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");
Lire des données à partir d'une table Delta Lake
Les exemples suivants lisent le fichier my_delta_table
et affichent son contenu.
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 avec Delta Lake
Écrivez dans une table Delta dans Hive.
Le composant facultatif Dataproc Delta Lake est préconfiguré pour fonctionner avec les tables externes Hive.
Pour en savoir plus, consultez Connecteur Hive.
Exécutez les exemples dans un client Beeline.
beeline -u jdbc:hive2://
Créez une table Spark Delta Lake.
La table Delta Lake doit être créée à l'aide de Spark avant qu'une table externe Hive puisse la référencer.
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");
Créez une table externe 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';
Remarques :
- La classe
io.delta.hive.DeltaStorageHandler
implémente les API de source de données Hive. Il peut charger une table Delta et extraire ses métadonnées. Si le schéma de table dans l'instructionCREATE TABLE
n'est pas cohérent avec les métadonnées Delta Lake sous-jacentes, une erreur est générée.
Lire à partir d'une table Delta Lake dans Hive.
Pour lire les données d'une table Delta, utilisez une instruction SELECT
:
SELECT * FROM deltaTable;
Supprimer une table Delta Lake
Pour supprimer une table Delta, utilisez l'instruction DROP TABLE
:
DROP TABLE deltaTable;