Schreiben von Snowpark-Code in Python-Arbeitsblättern

Schreiben Sie Snowpark-Code in Python-Arbeitsblätter, um Daten mithilfe von Snowpark Python in Snowsight zu verarbeiten. Indem Sie Code in Python-Arbeitsblättern schreiben, können Sie Entwicklung und Test in Snowflake durchführen, ohne abhängige Bibliotheken installieren zu müssen.

Um mit Python-Arbeitsblättern zu entwickeln, müssen Sie folgende Schritte ausführen:

  1. Rollen und Pakete in Snowflake vorbereiten.

  2. Arbeitsblatt für die Entwicklung einrichten.

  3. Snowpark-Code in das Python-Arbeitsblatt schreiben.

  4. Python-Arbeitsblatt ausführen.

Sie könnten beispielsweise Code in ein Python-Arbeitsblatt schreiben, der Daten aus Stagingbereichen oder Datenbankobjekten in Snowflake extrahiert, diese Daten umwandelt und die umgewandelten Daten in Snowflake speichert. Sie könnten dann diesen Code als gespeicherte Prozedur bereitstellen und eine Datenpipeline erstellen, ohne Snowflake zu verlassen.

Unter diesem Thema:

Allgemeine Informationen zu Python-Arbeitsblättern

Mit Python-Arbeitsblättern können Sie Snowpark Python in Snowsight verwenden, um Datenänderungen und Datenumwandlungen auszuführen. Sie können Pakete von Drittanbietern verwenden, die im Snowflake Anaconda Channel aufgeführt sind, oder Ihre eigenen Python-Dateien aus dem Stagingbereich importieren, um sie in Skripten zu verwenden.

Überprüfen Sie nach dem Ausführen eines Python-Arbeitsblatts die Ergebnisse und die Ausgabe, die von Ihrem Skript zurückgegeben werden. Die Ergebnisse werden je nach Code als Zeichenfolge, Variant-Wert oder Tabelle angezeigt. Siehe Ausführen von Python-Arbeitsblättern.

Bemerkung

Da Python-Arbeitsblätter in Snowflake und nicht in Ihrer lokalen Entwicklungsumgebung ausgeführt werden, können Sie weder session.add_import verwenden, um eine Datei hinzuzufügen, von der Ihr Python-Code abhängt, noch session.add_packages oder session.add_requirements, um Pakete hinzuzufügen, die Sie in Ihrem Python-Code verwenden müssen. Stattdessen fügen Sie diese Dateien einem Stagingbereich hinzu und verwenden im Code eine Referenz auf die Dateien. Siehe Bereitstellen von Dateien im Stagingbereich mit Snowsight.

Python-Arbeitsblätter haben die folgenden Einschränkungen:

  • Protokollebenen unter Warnungen (WARN) werden standardmäßig nicht in der Ausgabe (Output) eines Python-Arbeitsblatts angezeigt. Zur Protokollierung von Meldungen der unteren Ebene in der Ausgabe verwenden Sie eine Protokollierungsbibliothek wie das logging-Modul, um die Ebene der protokollierten Meldungen festzulegen.

  • Keine Unterstützung von Haltepunkten oder das Ausführen nur von Teilen des Python-Codes im Arbeitsblatt.

  • Keine Unterstützung von Bildern oder Webseiten. Von Python-Code generierte Bilder oder Webseiten können nicht in Python-Arbeitsblättern angezeigt werden.

  • Python-Arbeitsblätter verwenden Python 3.8.

Wenn Sie Unterstützung für eine dieser Optionen benötigen, sollten Sie stattdessen Ihre lokale Entwicklungsumgebung verwenden. Siehe Einrichten Ihrer Entwicklungsumgebung für Snowpark Python.

Voraussetzungen für Python-Arbeitsblätter

Um Python-Arbeitsblätter zu verwenden, müssen Sie Folgendes tun:

Lesen und akzeptieren Sie die Nutzungsbedingungen für Anaconda.

Bevor Sie die von Anaconda in Snowflake bereitgestellten Pakete verwenden können, müssen Sie die Snowflake-Bedingungen für Drittanbieter anerkennen.

Bemerkung

Sie müssen der Administrator der Organisation sein (Rolle ORGADMIN), um die Bedingungen akzeptieren zu können. Sie müssen die Bedingungen nur einmal für Ihr Snowflake-Konto akzeptieren. Siehe Aktivieren der ORGADMIN-Rolle für ein Konto.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Billing & Terms aus.

  3. Wählen Sie im Abschnitt Anaconda die Option Enable aus.

  4. Klicken Sie im Anaconda Packages-Dialog auf den Link, um die Snowflake-Bedingungen für Drittanbieter zu prüfen.

  5. Wenn Sie mit den Bedingungen einverstanden sind, klicken Sie auf Acknowledge & Continue.

Wenn Sie beim Versuch, die Nutzungsbedingungen zu akzeptieren, eine Fehlermeldung erhalten, fehlt in Ihrem Benutzerprofil möglicherweise ein Vorname, ein Nachname oder eine E-Mail-Adresse. Wenn Sie eine Administratorrolle haben, finden Sie unter Benutzerdetails zum Benutzerprofil hinzufügen entsprechende Informationen zum Aktualisieren Ihres Profils in Snowsight. Wenden Sie sich andernfalls an einen Administrator, um Ihr Konto zu aktualisieren.

Python-Datei aus einem Stagingbereich zu einem Arbeitsblatt hinzufügen

Snowflake enthält die Snowpark-Pakete aus dem Snowflake Anaconda-Kanal in Python-Arbeitsblättern.

Wenn Sie in Ihrem Python-Arbeitsblatt andere Python-Dateien oder -Pakete als die in Anaconda enthaltenen verwenden möchten, müssen Sie die Dateien in einen benannten Stagingbereich in Snowflake hochladen und die Dateien dann zur Liste der installierten Pakete für Ihr Python-Arbeitsblatt hinzufügen.

Um ein Python-Paket in Ihrem Arbeitsblatt zu verwenden, gehen Sie wie folgt vor:

  1. Melden Sie sich bei Snowsight an.

  2. Öffnen Sie Worksheets.

  3. Wählen Sie + » Python Worksheet aus.

  4. Wählen Sie eine Datenbank und ein Schema aus.

  5. Wählen Sie Packages » Stage Packages aus.

  6. Geben Sie den Pfad zu dem im Stagingbereich befindlichen Paket ein:

    • Wenn die ausgewählte Datenbank und das ausgewählte Schema für das Arbeitsblatt den Stagingbereich enthalten, in dem sich das Paket befindet, können Sie auf den Stagingbereich mit einem nicht qualifizierten Namen verweisen. Beispiel: @YourStage/path/to/example_package.py.

    • Um auf einen Stagingbereich in einer anderen Datenbank und einem anderen Schema zu verweisen, verwenden Sie den vollqualifizierten Namen des Stagingbereichs. Beispiel: @Database.Schema.Stage/path/to/other_package.py.

  7. Wählen Sie Import aus, um Ihr Paket zur Liste der installierten Pakete hinzuzufügen.

  8. Verwenden Sie in Ihrem Code import-Anweisungen, um das Paket in Ihrem Python-Arbeitsblatt zu verwenden. Nachdem Sie beispielsweise Pakete aus den Dateien example_package.py und other_package.py importiert haben, schreiben Sie den folgenden Code, um eine Funktion namens function aus der Datei example_package zu importieren, und importieren Sie das Paket other_package zur Verwendung in Ihrem Code:

    from example_package import function
    import other_package
    
    Copy

Bemerkung

Pakete, die Sie einem Arbeitsblatt hinzufügen, sind nur für dieses Arbeitsblatt verfügbar. Wenn Sie dasselbe Paket in einem anderen Python-Arbeitsblatt verwenden möchten, verwenden Sie diese Prozedur, um das Paket zu diesem Arbeitsblatt hinzuzufügen.

Weitere Details dazu finden Sie unter Abhängigkeiten für Code zur Verfügung stellen.

Entwicklung mit Python-Arbeitsblättern starten

Gehen Sie wie folgt vor, um ein Arbeitsblatt zu öffnen und Ihre Entwicklungsumgebung zu konfigurieren:

  1. Melden Sie sich bei Snowsight an.

  2. Öffnen Sie Worksheets.

  3. Wählen Sie + » Python Worksheet aus.

  4. Wählen Sie eine Datenbank und ein Schema aus.

  5. Wählen Sie das Warehouse aus, das zum Ausführen des Arbeitsblatts verwendet werden soll. Wenn Sie für Ihren Benutzer ein Standard-Warehouse haben, ist dieses bereits ausgewählt.

    Python-Arbeitsblätter erfordern ein aktives Warehouse, um Python-Pakete laden und Python-Code ausführen zu können.

  6. (Optional) Wählen Sie Packages, um die Python-Bibliotheken zu installieren.

    • Das Paket snowflake-snowpark-python ist für Python-Arbeitsblätter erforderlich und wird immer installiert.

    • Suchen Sie nach Paketen, die im Snowflake Anaconda-Kanal aufgeführt sind, wie z. B. numpy, pandas, requests und urllib3. Wählen Sie ein Paket aus, um es für die Verwendung in Ihrem Arbeitsblatt zu installieren, und ändern Sie optional die Standard-Paketversion in der Liste von Installed Packages.

    • Fügen Sie Ihre eigenen Pakete und Python-Dateien hinzu, indem Sie Stage Packages auswählen, den Dateipfad des Stagingbereichs und des Pakets angeben und dann Import auswählen. Siehe Python-Datei aus einem Stagingbereich zu einem Arbeitsblatt hinzufügen.

    Von Ihnen installierte Pakete werdem unter Installed Packages angezeigt.

  7. Wenn Sie Python-Bibliotheken für Ihr Arbeitsblatt installiert haben, fügen Sie import-Anweisungen in Ihren Code ein, um die installierten Bibliotheken zu verwenden.

    Wenn Sie zum Beispiel das Paket scikit-learn für Ihr Python-Arbeitsblatt installieren, fügen Sie am Anfang Ihres Codes eine import -Anweisung für dieses Paket ein

    import scikit-learn
    
    Copy
  8. Führen Sie den Python-Beispielcode aus, um Ihre Konfiguration zu validieren.

Fehlermeldungen oder der Rückgabewert Ihres Codes werden im Bereich Results angezeigt. Um Protokollmeldungen anzuzeigen, wählen Sie Output aus. Siehe Ausführen von Python-Arbeitsblättern.

Schreiben von Snowpark-Code in Python-Arbeitsblättern

Nachdem Sie die Schritte zum Starten der Entwicklung mit Python-Arbeitsblättern ausgeführt haben, können Sie den Beispielcode durch Ihren eigenen ersetzen.

Schreiben Sie Ihren Snowpark Python-Code innerhalb der Handler-Funktion:

import snowflake.snowpark as snowpark

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

Die Standard-Handler-Funktion ist main, aber Sie können diese für das Arbeitsblatt unter Settings ändern. Der aktive Handler wird im Arbeitsblatt hervorgehoben.

Verwenden Sie das im Beispielcode bereitgestellte session-Objekt, um mit den Snowpark-API-Bibliotheken auf Daten in Snowflake zuzugreifen. Sie können zum Beispiel einen DataFrame für eine Tabelle erstellen oder eine SQL-Anweisung ausführen. Siehe Snowpark-Entwicklerhandbuch für Python.

Während Sie tippen, sehen Sie die automatische Autovervollständigung für Python-Methoden, definierte Variablen und mehr. Sie sehen keine automatische Vervollständigung für einige Pakete oder Dateien von Drittanbietern, die aus einem Stagingbereich importiert wurden. Python-Arbeitsblätter bieten auch Syntaxhervorhebung und Hinweise zu Methodenparametern. Sie können für das Arbeitsblatt unter Settings auch Linting und Zeilenumbruch konfigurieren.

Ergebnisse in einem anderen Datentyp zurückgeben

Berücksichtigen Sie beim Schreiben Ihres Python-Codes, welcher Datentyp von der return-Anweisung des Codes zurückgegeben wird, und passen Sie an, wie das Arbeitsblatt die Ergebnisse zurückgibt. Standardmäßig hat ein Python-Arbeitsblatt den Rückgabetyp Table(), da der Platzhaltercode einen DataFrame zurückgibt.

Abhängig davon, was Ihr Python-Code zurückgibt, möchten Sie möglicherweise die Arbeitsblatteinstellungen ändern, um die Ausgabe anders anzuzeigen:

  • Wenn Ihre Handler-Funktion einen DataFrame zurückgibt, verwenden Sie den Standard-Rückgabetyp Table().

  • Wenn Ihre Handler-Funktion eine Liste von Row-Objekten zurückgibt, z. B. mit der Methode collect, ändern Sie den Rückgabetyp in Variant.

  • Wenn Ihre Handler-Funktion eine Zeichenfolge wie return "Hello Python" oder einen Wert zurückgibt, den Sie in eine Zeichenfolge umwandeln möchten, ändern Sie den Rückgabetyp in String.

  • Wenn Ihre Handler-Funktion eine Ganzzahl zurückgibt, wie z. B. bei der Methode count, verwenden Sie den Rückgabetyp Variant oder String.

Weitere Informationen zum Rückgabetyp einiger DataFrame-Methoden finden Sie unter Ausführen einer Aktion zum Auswerten eines DataFrame.

Gehen Sie wie folgt vor, um die Arbeitsblatteinstellungen so zu aktualisieren, dass Ergebnisse eines anderen Typs zurückgegeben werden:

  1. Melden Sie sich bei Snowsight an.

  2. Öffnen Sie Worksheets.

  3. Öffnen Sie das Python-Arbeitsblatt, dessen Ergebnisse Sie als Tabelle anzeigen möchten.

  4. Wählen Sie das Warehouse aus, das zum Ausführen des Arbeitsblatts verwendet werden soll. Wenn Sie für Ihren Benutzer ein Standard-Warehouse haben, ist dieses bereits ausgewählt. Stellen Sie sicher, dass Ihr Warehouse aktiv ist.

  5. Wählen Sie Settings aus, und wählen Sie für Return type den von der Handler-Funktion zurückgegebenen Typ aus.

  6. Führen Sie Ihr Python-Arbeitsblatt aus.

  7. Überprüfen Sie die Ergebnisse im Bereich Results.

Übergabe zusätzlicher Argumente an die Handler-Funktion

Mit einem Python-Arbeitsblatt können Sie eine Python-Funktion testen, die ein einziges Argument (ein Snowpark Session Objekt) annimmt, indem Sie diese Funktion als Handler für das Arbeitsblatt festlegen. Jede Funktion, die in einem Python-Arbeitsblatt definiert ist, muss das Argument session: snowpark.Session übergeben.

Um eine Funktion zu testen, die zusätzliche Argumente übergibt, gehen Sie wie folgt vor:

  1. Fügen Sie die Argumente zu Ihrer Funktion hinzu.

  2. Definieren Sie eine separate Funktion mit einem einzigen Argument, die einen Snowpark Session übergibt. In dieser Funktion rufen Sie die Funktion mit mehreren Argumenten auf, wobei Sie Werte für die zusätzlichen Argumente übergeben, und geben dann den Wert der Funktion zurück.

    Um zum Beispiel Snowpark Python-Code zu schreiben, der eine Tabelle von Paketen nach der Paketsprachen-Spalte filtert, können Sie den folgenden Code schreiben:

    import snowflake.snowpark as snowpark
    from snowflake.snowpark.functions import col
    
    # Add parameters with optional type hints to the main handler function
    def main(session: snowpark.Session, language: str):
      # Your code goes here, inside the "main" handler.
      table_name = 'information_schema.packages'
      dataFrame = session.table(table_name).filter(col("language") == language)
    
      # Print a sample of the dataFrame to standard output
      dataFrame.show()
    
      # The return value appears in the Results tab
      return dataFrame
    
    # Add a second function to supply a value for the language parameter to validate that your main handler function runs.
    def test_language(session: snowpark.Session):
      return main(session, 'java')
    
    Copy

    In diesem Beispiel ist die Funktion main die Funktion mit mehreren Argumenten und die Funktion test_language die Funktion mit einem Argument, mit der überprüft wird, ob Ihr Code mit den übergebenen Argumenten ausgeführt werden kann.

  3. Legen Sie die Funktion für ein einzelnes Argument als Handler-Funktion fest, um das Arbeitsblatt auszuführen und zu überprüfen, ob Ihr Code mit den Argumentwerten ausgeführt wird.

    In diesem Beispiel ändern Sie den Handler in die Funktion test_language und wählen dann Run. Sie können den Handler im Arbeitsblatt Settings ändern oder die Glühbirne Show actions neben der Handler-Funktion anklicken und Set function „test_language“ as handler auswählen.

Wenn Sie Ihr Python-Arbeitsblatt als gespeicherte Prozedur bereitstellen, können Sie die Haupt-Handler-Funktion auswählen und die Argumente und zugeordneten Typen für Ihre gespeicherte Prozedur überprüfen.

Ausführen von Python-Arbeitsblättern

Nachdem Sie Ihr Python-Arbeitsblatt geschrieben haben, wählen Sie Run aus, um das Python-Arbeitsblatt auszuführen. Beim Ausführen des Arbeitsblatts wird der gesamte in Ihrem Python-Arbeitsblatt enthaltene Code ausgeführt. Die teilweise oder inkrementelle Ausführung von Code wird nicht unterstützt.

Bemerkung

Wenn Sie ein Paket verwenden, das im Snowflake Anaconda-Kanal aufgeführt ist und die Anaconda-Bedingungen noch nicht akzeptiert haben, wird möglicherweise eine Fehlermeldung über fehlende Pakete angezeigt. Siehe Verwenden von Drittanbieterpaketen aus Anaconda.

Vom Code generierte Ausgabe prüfen

Sie können im Bereich Output des Python-Arbeitsblatts die Standardausgabemeldungen (stdout) oder die Standardfehlermeldungen (stderr) für Ihren Python-Code überprüfen.

Sie können im Bereich Output die Ausgabe der folgenden Funktionstypen sehen:

  • Funktionen, die in die Konsole schreiben, wie z. B. print().

  • Funktionen, die ein DataFrame ausgeben, wie die show-Methode der DataFrame-Klasse in Snowpark Python.

Bemerkung

Die Ausgabe erfolgt nicht wie in einem Stream während der Codeausführung, sondern wird erst angezeigt, nachdem alle Python-Prozesse abgeschlossen sind.

Die Protokollausgabe wird in einen temporären Stagingbereich geschrieben und nur erfasst, wenn Folgendes zutrifft:

  • Sie wählen eine Datenbank und ein Schema für das Arbeitsblatt aus.

  • Die ausgewählte Datenbank wurde nicht aus einer Freigabe erstellt.

  • Sie führen das Arbeitsblatt mit einer Rolle aus, die über USAGE-Berechtigungen für die ausgewählte Datenbank und das ausgewählte Schema verfügt.

Abfrageverlauf für ein Python-Arbeitsblatt prüfen

Wenn ein Python-Arbeitsblatt in Snowsight ausgeführt wird, führt eine anonyme gespeicherte Prozedur den Code aus und generiert Abfragen, die die Snowpark-Befehle im Code ausführen.

Sie können die Seite Query History in Snowsight verwenden, um die ausgeführten Abfragen zu überprüfen. Siehe Abfrageverlauf mit Snowsight überprüfen.

Nachdem Sie beispielsweise ein Arbeitsblatt ausgeführt haben, können Sie die ausgeführten Abfragen wie folgt überprüfen:

  1. Überprüfen Sie die Ergebnisse des Arbeitsblatts unter Results.

  2. Wählen Sie unter Query Details für das Arbeitsblatt More options » Copy Query ID aus.

  3. Wählen Sie Worksheets aus, um zur Liste der Arbeitsblätter zurückzukehren.

  4. Wählen Sie Activity » Query History aus.

  5. So zeigen Sie auf der Seite Query History nur die Abfragen aus Ihrem Python-Arbeitsblatt an:

    1. Wählen Sie Filters aus, und aktivieren Sie die Option Query ID.

    2. Geben Sie die Abfrage-ID Ihres Python-Arbeitsblatts ein.

    3. Wählen Sie Apply Filters aus.

  6. Überprüfen Sie die für das Arbeitsblatt ausgeführten Abfragen.

Beispielcode für Python-Arbeitsblätter

Wenn Sie Python-Arbeitsblätter schreiben, können Sie Aufgaben zur Datentransformation und -manipulation ausführen, einschließlich des Lesens von Daten aus einem benannten Stagingbereich.

Weitere Beispiele können Sie unter Verwenden von DataFrames in Snowpark Python einsehen.

Beispiel: Ein einfaches Snowpark-Programm schreiben

In diesem Beispiel schreiben Sie ein Snowpark Python-Programm, das einen kleinen Zahlenbereich generiert und diesen Bereich in eine Tabelle schreibt, die Ihr Code in Snowflake erstellt oder überschreibt, falls sie bereits existiert. Um dieses Codebeispiel auszuführen, müssen Sie über die Berechtigung CREATE TABLE für das Datenbankschema verfügen, zu dem Sie die Tabelle hinzufügen möchten.

  1. Melden Sie sich bei Snowsight an.

  2. Öffnen Sie Worksheets.

  3. Wählen Sie + » Python Worksheet aus.

  4. Wählen Sie eine Datenbank und ein Schema, dem Sie die Tabelle hinzufügen möchten.

  5. Wählen Sie das Warehouse aus, das zum Ausführen des Arbeitsblatts verwendet werden soll. Wenn Sie für Ihren Benutzer ein Standard-Warehouse haben, ist dieses bereits ausgewählt. Stellen Sie sicher, dass Ihr Warehouse aktiv ist.

  6. Schreiben Sie den Snowpark Python-Code als Teil der Funktion main:

    import snowflake.snowpark as snowpark
    
    def main(session: snowpark.Session):
      tableName = "range_table"
      df_range = session.range(1, 10, 2).to_df('a')
      df_range.write.mode("overwrite").save_as_table(tableName)
      return tableName + " table successfully created"
    
    Copy
  7. Wählen Sie Settings aus, und wählen Sie unter Return type als Rückgabetyp der Handler-Funktion den Typ String aus.

  8. Führen Sie den Code aus.

Beispiel: Daten in einem Python-Arbeitsblatt transformieren

In diesem Beispiel schreiben Sie Python-Code, der die Einträge in der Ansicht TASK_HISTORY im Schema ACCOUNT_USAGE der Datenbank SNOWFLAKE nach geplanter Zeit und Zustand aggregiert und die aggregierte Ausgabe in der Tabelle aggregate_task_history speichert.

Bemerkung

Da in diesem Beispiel Kontonutzungsdaten abgefragt werden, müssen Sie eine Rolle verwenden mit:

  1. Melden Sie sich bei Snowsight an.

  2. Öffnen Sie Worksheets.

  3. Wählen Sie + » Python Worksheet aus.

  4. Wählen Sie eine Datenbank und ein Schema, dem Sie die Tabelle hinzufügen möchten.

  5. Wählen Sie das Warehouse aus, das zum Ausführen des Arbeitsblatts verwendet werden soll. Wenn Sie für Ihren Benutzer ein Standard-Warehouse haben, ist dieses bereits ausgewählt. Stellen Sie sicher, dass Ihr Warehouse aktiv ist.

  6. Schreiben Sie den Snowpark Python-Code als Teil der Funktion main:

    import snowflake.snowpark as snowpark
    from snowflake.snowpark.functions import col
    from snowflake.snowpark.dataframe_reader import *
    from snowflake.snowpark.functions import *
    
    def main(session: snowpark.Session):
    
      inputTableName = "snowflake.account_usage.task_history"
      outputTableName = "aggregate_task_history"
    
      df = session.table(inputTableName)
      df.filter(col("STATE") != "SKIPPED")\
        .group_by(("SCHEDULED_TIME"), "STATE").count()\
        .write.mode("overwrite").save_as_table(outputTableName)
      return outputTableName + " table successfully written"
    
    Copy
  7. Wählen Sie Settings aus, und wählen Sie unter Return type als Rückgabetyp der Handler-Funktion den Typ String aus.

  8. Führen Sie den Code aus.

Nachdem Sie Ihren Code in einem Python-Arbeitsblatt ausgeführt haben, können Sie ein SQL-Arbeitsblatt öffnen und die Tabelle abfragen. Siehe Abfragen von Daten über Arbeitsblätter.

Beispiel: Dateien aus einem Stagingbereich mit Python-Arbeitsblättern lesen

Mit Snowpark Python können Sie Dateien aus einem Stagingbereich lesen und den Inhalt in eine Tabelle schreiben oder als Ansicht in Snowflake speichern. In diesem Beispiel liest der Python-Code den Inhalt einer komprimierten CSV-formatierten Datei mit Mitarbeiterdaten, data_0_0_0.csv.gz aus dem db1.public.files benannten Stagingbereich und schreibt den Inhalt in eine Tabelle namens employees.

Bemerkung

Um dieses Codebeispiel auszuführen, müssen Sie eine Rolle verwenden, die über Folgendes verfügt:

  • Die Berechtigung USAGE für den Stagingbereich, die Datenbank und das im Code verwendete Schema.

  • Die Berechtigung CREATE TABLE für das Datenbankschema, zu dem Sie die Tabelle hinzufügen möchten.

  1. Melden Sie sich bei Snowsight an.

  2. Öffnen Sie Worksheets.

  3. Wählen Sie + » Python Worksheet aus.

  4. Wählen Sie eine Datenbank und ein Schema, dem Sie die Tabelle hinzufügen möchten.

  5. Wählen Sie das Warehouse aus, das zum Ausführen des Arbeitsblatts verwendet werden soll. Wenn Sie für Ihren Benutzer ein Standard-Warehouse haben, ist dieses bereits ausgewählt. Stellen Sie sicher, dass Ihr Warehouse aktiv ist.

  6. Schreiben Sie den Snowpark Python-Code als Teil der Funktion main:

    import snowflake.snowpark as snowpark
    from snowflake.snowpark.types import *
    
    schema_for_file = StructType([
      StructField("name", StringType()),
      StructField("role", StringType())
    ])
    
    fileLocation = "@DB1.PUBLIC.FILES/data_0_0_0.csv.gz"
    outputTableName = "employees"
    
    def main(session: snowpark.Session):
      df_reader = session.read.schema(schema_for_file)
      df = df_reader.csv(fileLocation)
      df.write.mode("overwrite").save_as_table(outputTableName)
    
      return outputTableName + " table successfully written from stage"
    
    Copy
  7. Wählen Sie Settings aus, und wählen Sie unter Return type als Rückgabetyp der Handler-Funktion den Typ String aus.

  8. Führen Sie den Code aus.

Nachdem Sie Ihren Code in einem Python-Arbeitsblatt ausgeführt haben, können Sie ein SQL-Arbeitsblatt öffnen und die Tabelle abfragen. Siehe Abfragen von Daten über Arbeitsblätter.

Weitere Informationen zum Arbeiten mit Dateien in einem Stagingbereich mit Snowpark finden Sie unter Verwenden von DataFrames in Snowpark Python.