Exemples Snowpark Submit¶
Cette rubrique comprend des exemples utilisant Snowpark Submit pour soumettre des applications Spark prêtes pour la production.
Écrire et soumettre une application Spark simple¶
L’exemple suivant montre comment écrire et soumettre une application Spark simple sans dépendances.
Dans votre IDE local, créez un nouveau fichier Python appelé
app.pyavec le contenu suivant :Pour soumettre l’application, utilisez la commande suivante :
Vous pouvez utiliser l’option
--wait-for-completionpour attendre que la tâche soit terminée, l’option--workload-statuspour vérifier le statut de la tâche et l’option:code:--display-logspour afficher les journaux de la tâche. Pour obtenir la liste complète des options, voir Référence Snowpark Submit.
Déployer une application à partir d’une zone de préparation Snowflake¶
Si l’application a des dépendances, comme des fichiers qu’elle doit lire, vous pouvez les déployer à partir d’une zone de préparation Snowflake. L’exemple suivant montre comment déployer une application et ses dépendances à partir d’une zone de préparation Snowflake.
Pour importer des fichiers vers une zone de préparation à partir du terminal, vous pouvez utiliser le CLI Snowflake. Remarque : SnowSQL est l’ancien CLI et si vous l’utilisez déjà, vous pouvez l’utiliser également pour importer des fichiers vers une zone de préparation. Si vous n’avez pas encore installé le CLI Snowflake, suivez les instructions d’installation suivantes : Installation de Snowflake CLI.
Créez un nouveau fichier CSV dans votre IDE local appelé
sample_employees.csvavec le contenu suivant :Importez vos fichiers de dépendances vers une zone de préparation en utilisant la commande suivante, où
my_stageest le nom d’une zone de préparation de votre compte. (Si vous n’avez pas de zone de préparation créée, vous pouvez utiliser [snow stage create](/developer-guide/snowflake-cli/command-reference/stage-commands/create).)Pour vérifier que le fichier a bien été importé, vous pouvez utiliser la commande suivante pour répertorier les fichiers de la zone de préparation :
Vous devriez voir le fichier
sample_employees.csvdans la liste.Dans votre IDE local, créez un nouveau fichier Python appelé
app.pyavec le contenu suivant :Pour soumettre l’application qui utilise les fichiers que vous avez importés dans la zone de préparation, utilisez la commande suivante :
Notez qu’un pool de calcul est nécessaire pour exécuter l’application et doit être soit spécifié dans le fichier
connections.tomlou sur la ligne de commande en utilisant l’option--compute-pool. Pour plus d’informations, voir Référence Snowpark Submit.
Surveillance avec attente et journaux¶
L’exemple suivant illustre comment soumettre une tâche, attendre son achèvement, puis récupérer les journaux.
Soumettez la tâche et attendez qu’elle soit terminée à l’aide de la commande suivante :
Si la tâche échoue, consultez les journaux détaillés à l’aide de la commande suivante :
Utiliser Snowpark Submit dans un DAG Apache Airflow¶
Vous pouvez soumettre une tâche Spark à Snowflake via Snowpark Connect for Spark. Vous pouvez utiliser la commande snowpark-submit en mode cluster pour exploiter un pool de calcul afin d’exécuter la tâche.
Lorsque vous utilisez Apache Airflow de cette manière, assurez-vous que le service Docker ou le conteneur Snowpark Container Services qui exécute Apache Airflow a un accès approprié à Snowflake et aux fichiers requis dans la zone de préparation Snowflake.
Le code de l’exemple suivant effectue les tâches suivantes :
Crée un environnement virtuel Python dans
/tmp/myenv.Dans la tâche
create_venv, le code utilisepippour installer le paquetsnowpark-submità l’aide d’un fichier.whl.Génère un fichier
connections.tomlsécurisé avec des identifiants de connexion Snowflake et un jeton OAuth.Dans la tâche
create_connections_toml, le code crée le répertoire/app/.snowflake, crée le fichier.toml, puis modifie les autorisations du fichier pour n’autoriser que le propriétaire (utilisateur) à disposer d’un accès en lecture et en écriture.Exécute une tâche Spark en utilisant la commande snowpark-submit.
Dans la tâche
run_snowpark_script, le code effectue les opérations suivantes :Active l’environnement virtuel.
Exécute la tâche Spark en utilisant la commande snowpark-submit.
Déploie sur Snowflake en utilisant le mode cluster.
Utilise l’URI distante sc://localhost:15002 de Snowpark Connect for Spark.
Spécifie la classe d’application Spark
org.example.SnowparkConnectApp.Extrait le script de la zone de préparation @snowflake_stage.
Bloque le déploiement jusqu’à la fin de la tâche en utilisant
--wait-for-completion.
Vous pouvez surveiller le DAG à l’aide de la vue graphique ou de la vue arborescente de l’interface utilisateur Apache Airflow. Inspectez les journaux des tâches pour les éléments suivants :
Configuration de l’environnement
Statut de Snowpark Connect for Spark
Sortie de tâche snowpark-submit
Vous pouvez également surveiller les tâches qui se sont exécutées dans Snowflake à partir des journaux stockés dans la zone de préparation Snowflake ou à partir des tables d’événements.