Exemples de code : Apache Spark™

Cette section fournit des exemples de code pour l’utilisation d’Apache Spark™ pour effectuer les tâches suivantes dans Snowflake Open Catalog :

  • Configuration d’une connexion de service

  • Utiliser un catalogue

  • Répertorier les catalogues

  • Répertorier les espaces de noms

  • Création d’un espace de noms

  • Utiliser un espace de noms

  • Supprimer un espace de noms

  • Créer une table

  • Interroger une table

  • Afficher les propriétés de la table

  • Répertorier les tables

  • Détruire une table

Privilèges requis

Pour exécuter les commandes incluses dans les exemples de code, les privilèges suivants doivent être accordés au principal de service que vous utilisez pour connecter Spark à Open Catalog :

Commande

Privilège requis

Afficher les espaces de noms

NAMESPACE_LIST

Créer des espaces de noms

NAMESPACE_CREATE

Utiliser l’espace de noms

NAMESPACE_READ_PROPERTIES

Afficher les tables

TABLE_LIST

Créer ou remplacer la table

  • TABLE_WRITE_DATA
  • TABLE_CREATE

Détruire l’espace de noms

NAMESPACE_DROP

Détruire une table

TABLE_DROP

Insérer dans la table

TABLE_WRITE_DATA

Sélectionner à partir de la table

TABLE_READ_DATA

Configuration d’une connexion de service

Voir Exemples de configuration d’une connexion de service dans Spark.

Utiliser le catalogue

Utiliser le catalogue catalog1 :

spark.sql("use catalog1").show()
Copy

Répertorier les catalogues

Répertorier les catalogues auxquels vous êtes connecté :

spark.sql("show catalogs").show()
Copy

Répertorier les espaces de noms

Répertorier les espaces de noms du catalogue auquel vous êtes connecté :

spark.sql("show namespaces").show()
Copy

Création d’un espace de noms

Créer l’espace de noms namespace1 :

spark.sql("CREATE NAMESPACE namespace1")
Copy

Utiliser un espace de noms

Utiliser l’espace de noms namespace1 :

spark.sql("use namespace1").show()
Copy

Supprimer un espace de noms

Supprimer l’espace de noms namespace1 du catalogue :

spark.sql("DROP NAMESPACE namespace1")
Copy

Créer une table

Créer une table customers sous l’espace de noms parent namespace1 :

spark.sql ("use namespace1");
spark.sql("CREATE OR REPLACE TABLE customers (id int, custnum int) using iceberg")
Copy

Interroger une table

Interroger la table customers :

spark.sql ("use namespace1");
spark.sql("SELECT * FROM customers").show()
Copy

Afficher les propriétés de la table

Afficher les propriétés de la table pour la table customers :

spark.sql("SHOW TBLPROPERTIES customers").show(50, False)
Copy

Répertorier les tables

Répertorier les tables du catalogue auquel vous êtes connecté :

spark.sql("show tables").show()
Copy

Détruire une table

Supprimer la table customers sous l’espace de noms parent namespace1 :

spark.sql ("use namespace1");
spark.sql("DROP TABLE customers")
Copy