Écriture de code Snowpark dans des feuilles de calcul Python

Écrivez le code Snowpark dans des feuilles de calcul Python pour traiter les données à l’aide de Snowpark Python dans Snowsight. En écrivant du code dans des feuilles de calcul Python, vous pouvez effectuer votre développement et vos tests dans Snowflake sans avoir à installer de bibliothèques dépendantes.

Pour effectuer du développement avec des feuilles de calcul Python, procédez comme suit :

  1. Préparez les rôles et les packages dans Snowflake.

  2. Configurez votre feuille de calcul pour le développement.

  3. Écrivez du code Snowpark dans votre feuille de calcul Python.

  4. Exécutez votre feuille de calcul Python.

Par exemple, vous pouvez écrire du code dans une feuille de calcul Python qui extrait des données de zones de préparation ou d’objets de base de données dans Snowflake, transforme les données et stocke les données transformées dans Snowflake. Vous pouvez ensuite convertir ce code en une procédure stockée et créer un pipeline de données, le tout sans quitter Snowflake.

Dans ce chapitre :

À propos des feuilles de calcul Python

Les feuilles de calcul Python vous permettent d’utiliser Snowpark Python dans Snowsight pour effectuer des manipulations et des transformations de données. Vous pouvez utiliser les packages disponibles dans Anaconda ou importer vos propres fichiers Python à partir de zones de préparation pour les utiliser dans des scripts.

Après avoir exécuté une feuille de calcul Python, examinez les résultats et la sortie renvoyés par votre script. Les résultats s’affichent sous forme de chaîne, de variante ou de tableau, selon votre code. Reportez-vous à Exécution de feuilles de calcul Python.

Note

Étant donné que les feuilles de calcul Python s’exécutent dans Snowflake plutôt que dans votre environnement de développement local, vous ne pouvez pas utiliser session.add_import pour ajouter un fichier dont dépend votre code Python, ou session.add_packages ou session.add_requirements pour ajouter des packages que vous devez utiliser dans votre Python code. Au lieu de cela, vous ajoutez ces fichiers à une zone de préparation et vous les référencez dans votre code. Reportez-vous à Ajouter un fichier Python d’une zone de préparation à une feuille de calcul.

Les feuilles de calcul Python présentent les limitations suivantes :

  • Les niveaux de journal inférieurs à WARN n’apparaissent pas dans la Output pour une feuille de calcul Python par défaut. Utilisez plutôt une bibliothèque de journalisation telle que le module logging pour définir le niveau des messages consignés. Tous les messages que vous enregistrez apparaissent dans la sortie.

  • Pas de prise en charge des points d’arrêt ou exécution uniquement de parties du code Python dans une feuille de calcul.

  • Pas de prise en charge des images ou de pages Web. Les images ou les pages Web générées par du code Python ne peuvent pas être affichées dans les feuilles de calcul Python.

  • Snowpark Python utilise Python 3.8.

Si vous avez besoin d’assistance pour l’une de ces options, envisagez plutôt d’utiliser votre environnement de développement local. Reportez-vous à Configuration de votre environnement de développement pour Snowpark Python.

Prérequis pour les feuilles de calcul Python

Pour utiliser les feuilles de calcul Python, vous devez procéder comme suit :

Ajouter un fichier Python d’une zone de préparation à une feuille de calcul

Snowflake inclut les packages Anaconda du canal conda Snowflake dans les feuilles de calcul Python. Si vous souhaitez utiliser d’autres fichiers ou packages Python que ceux inclus dans Anaconda dans votre feuille de calcul Python, vous devez télécharger les fichiers vers une zone de préparation nommée dans Snowflake, puis les ajouter à la liste des packages de votre feuille de calcul Python.

Pour utiliser un package Python dans votre feuille de calcul qui n’est pas inclus par défaut, procédez comme suit :

  1. Connectez-vous à Snowsight.

  2. Ouvrez Worksheets.

  3. Sélectionnez + » Python Worksheet.

  4. Sélectionnez une base de données et un schéma.

  5. Sélectionnez Packages » Stage Packages.

  6. Entrez le chemin d’accès au package dans la zone de préparation.

    • Si la base de données et le schéma sélectionnés pour la feuille de calcul contiennent la zone de préparation où se trouve le package, vous pouvez faire référence à la zone de préparation à l’aide d’un nom non qualifié. Par exemple, @YourStage/path/to/package.py.

    • Pour faire référence à une zone de préparation dans une base de données et un schéma différents, qualifiez entièrement le nom de la zone de préparation. Par exemple, @Database.Schema.Stage/path/to/package.py.

  7. Sélectionnez Import pour ajouter votre package à la liste des packages installés. Vous pouvez ensuite utiliser les instructions import pour utiliser le package dans votre feuille de calcul Python.

Note

Les packages que vous ajoutez à une feuille de calcul ne sont disponibles que pour cette feuille de calcul. Si vous souhaitez utiliser le même package dans une autre feuille de calcul Python, suivez ces étapes pour ajouter le package à cette feuille de calcul.

Pour plus de détails, reportez-vous à Mettre les dépendances à la disposition de votre code.

Commencez à développer avec des feuilles de calcul Python

Pour ouvrir une feuille de calcul et configurer votre environnement de développement, procédez comme suit :

  1. Connectez-vous à Snowsight.

  2. Ouvrez Worksheets.

  3. Sélectionnez + » Python Worksheet.

  4. Sélectionnez une base de données et un schéma.

  5. Sélectionnez un entrepôt à utiliser pour exécuter la feuille de calcul. Si vous avez un entrepôt par défaut pour votre utilisateur, il est présélectionné.

    Les feuilles de calcul Python nécessitent un entrepôt en cours d’exécution pour charger les packages Python et exécuter le code Python.

  6. (Facultatif) Sélectionnez Packages pour ajouter des bibliothèques Python.

    • Les packages inclus avec Anaconda, tels que numpy, pandas, requests et urllib3, sont déjà installés.

    • Recherchez d’autres packages que vous souhaitez installer et utiliser dans votre feuille de calcul, tels que scikit-learn. Sélectionnez le package dans les résultats de la recherche et modifiez éventuellement la version du package sélectionnée par défaut. Les packages que vous avez installés apparaissent en haut de la liste des packages.

    • Ajoutez vos propres packages et fichiers Python en sélectionnant Stage Packages et en spécifiant le chemin d’accès au fichier de la zone de préparation et du package, puis en sélectionnant Import.

    Si vous ajoutez des bibliothèques Python à votre feuille de calcul, mettez à jour votre code pour utiliser les instructions import pour importer les bibliothèques dans votre feuille de calcul.

  7. Exécutez l’exemple de code Python pour valider votre configuration.

Les messages d’erreur ou la valeur de retour de votre code s’affichent dans la section Results. Pour afficher les messages du journal, sélectionnez Output. Reportez-vous à Exécution de feuilles de calcul Python.

Écriture de code Snowpark dans des feuilles de calcul Python

Après avoir suivi les étapes pour commencer à développer avec des feuilles de calcul Python, vous pouvez remplacer le code d’exemple par le vôtre.

Écrivez votre code Snowpark Python dans la fonction de gestionnaire :

import snowflake.snowpark as snowpark

def main(session: snowpark.Session):
    # your code goes here
Copy

La fonction de gestionnaire par défaut est main, mais vous pouvez la modifier dans les Settings de la feuille de calcul.

Utilisez l’objet session fourni dans le code réutilisable pour accéder aux données dans Snowflake avec les bibliothèques d’API Snowpark. Par exemple, vous pouvez créer un DataFrame pour une table ou exécuter une instruction SQL. Reportez-vous à Guide du développeur Snowpark pour Python.

Au fur et à mesure que vous tapez du texte, vous voyez la saisie semi-automatique pour les méthodes Python, les variables définies, les objets de base de données, etc. Vous ne voyez pas la saisie semi-automatique pour certains packages ou fichiers tiers importés à partir d’une zone de préparation. Les feuilles de calcul Python incluent également la coloration syntaxique et des conseils pour les paramètres de méthode. Vous pouvez activer le linting et le retour à la ligne dans les Settings de la feuille de calcul.

Renvoyer les résultats d’un type de données différent

Lorsque vous écrivez votre code Python, tenez compte du type de données renvoyé par l’instruction return dans votre code et ajustez la manière dont la feuille de calcul renvoie les résultats. Par défaut, une feuille de calcul Python a un type de retour de Table() car le code de caractère de remplacement renvoie un DataFrame.

En fonction de ce que votre code Python renvoie, vous souhaiterez peut-être modifier les paramètres de la feuille de calcul pour afficher la sortie différemment :

  • Si votre fonction de gestionnaire renvoie un DataFrame, utilisez le type de retour par défaut de Table().

  • Si votre fonction de gestionnaire renvoie une liste d’objets Row comme avec la méthode collect , remplacez le type de retour par Variant.

  • Si votre fonction de gestionnaire renvoie une chaîne, telle que return "Hello Python", ou une valeur que vous souhaitez convertir en chaîne, remplacez le type de retour par String.

  • Si votre fonction de gestionnaire renvoie un entier, comme avec la méthode count , utilisez un type de retour de Variant ou String.

Pour plus de détails sur le type de retour de certaines méthodes DataFrame, reportez-vous à Exécution d’une action pour évaluer un DataFrame.

Pour mettre à jour les paramètres de la feuille de calcul afin de renvoyer des résultats d’un type différent, procédez comme suit :

  1. Connectez-vous à Snowsight.

  2. Ouvrez Worksheets.

  3. Ouvrez la feuille de calcul Python pour laquelle vous souhaitez afficher les résultats sous forme de tableau.

  4. Sélectionnez un entrepôt à utiliser pour exécuter la feuille de calcul. Si vous avez un entrepôt par défaut pour votre utilisateur, il est présélectionné. Assurez-vous que votre entrepôt fonctionne.

  5. Sélectionnez Settings et pour le Return Type, sélectionnez le type renvoyé par la fonction de gestionnaire.

  6. Exécutez votre feuille de calcul Python.

  7. Examinez les résultats dans le panneau Results.

Exécution de feuilles de calcul Python

Après avoir écrit votre feuille de calcul Python, sélectionnez Run pour exécuter votre feuille de calcul Python. L’exécution de votre feuille de calcul exécute tout le code de votre feuille de calcul Python. L’exécution partielle ou incrémentielle du code n’est pas prise en charge.

Examiner la sortie générée par votre code

Vous pouvez consulter les messages de sortie standard (stdout) ou d’erreur standard (stderr) pour votre code Python dans le panneau Output d’une feuille de calcul Python.

Vous pouvez voir le résultat des types de fonctions suivants dans le panneau Output :

  • Fonctions qui écrivent dans la console, telles que print().

  • Fonctions qui affichent un DataFrame, telles que la méthode show de la classe DataFrame dans Snowpark Python.

Note

La sortie apparaît après la fin de l’exécution de tous les processus Python, plutôt que d’apparaître dans un flux pendant l’exécution du code.

La sortie du journal est écrite dans une zone de préparation temporaire et n’est capturée que si les conditions suivantes sont remplies :

  • Vous sélectionnez une base de données et un schéma pour la feuille de calcul.

  • La base de données sélectionnée n’a pas été créée à partir d’un partage.

  • Vous exécutez la feuille de calcul à l’aide d’un rôle disposant des privilèges USAGE sur la base de données et le schéma sélectionnés.

Examiner l’historique des requêtes pour une feuille de calcul Python

Lorsqu’une feuille de calcul Python s’exécute dans Snowsight, une procédure stockée anonyme exécute le code et génère des requêtes qui exécutent les commandes Snowpark dans le code.

Vous pouvez utiliser la page Query History dans Snowsight pour examiner les requêtes exécutées. Reportez-vous à Historique des requêtes.

Par exemple, après avoir exécuté une feuille de calcul, vous pouvez passer en revue les requêtes exécutées en procédant comme suit :

  1. Passez en revue les Results de la feuille de calcul.

  2. Dans les Query Details de la feuille de calcul, sélectionnez More options » Copy Query ID

  3. Sélectionnez Worksheets pour revenir à la liste des feuilles de calcul.

  4. Sélectionnez Activity » Query History.

  5. Sur la page Query History , affichez uniquement les requêtes de votre feuille de calcul Python :

    1. Sélectionnez Filters, et activez l’option Query ID.

    2. Entrez l’ID de requête de votre feuille de calcul Python.

    3. Sélectionnez Apply Filters.

  6. Passez en revue les requêtes exécutées pour la feuille de calcul.