Ausführen von Spark-Workloads über Snowflake Notebooks

Sie können Spark-Workloads interaktiv von Snowflake Notebooks aus ausführen, ohne einen Spark-Cluster verwalten zu müssen. Die Workloads werden auf der Snowflake-Infrastruktur ausgeführt.

So verwenden Sie Snowflake Notebooks als Client für die Entwicklung von Spark-Workloads für die Ausführung auf Snowflake:

  1. Starten Sie Snowflake Notebooks.

  2. Starten Sie im Notizbuch eine Spark-Sitzung.

  3. Verfassen Sie PySpark-Code zum Laden, Transformieren und Analysieren von Daten – z. B. zum Filtern von hochwertigen Kundenaufträgen oder zum Aggregieren von Umsätzen.

Verwenden eines Notizbuchs in Snowflake, das auf einem Warehouse läuft

Weitere Informationen zu Snowflake Notebooks finden Sie unter Notebook erstellen.

  1. Erstellen Sie ein Snowflake-Notizbuch, indem Sie die folgenden Schritte ausführen:

    1. Melden Sie sich bei Snowsight an.

    2. Wählen Sie oben im Navigationsmenü Dashboard-Kachel hinzufügen (Create) » Notebook » New Notebook aus.

    3. Geben Sie im Dialogfeld Create notebook einen Namen, eine Datenbank und ein Schema für das neue Notizbuch ein.

      Weitere Informationen dazu finden Sie unter Notebook erstellen.

    4. Wählen Sie unter Runtime die Option Run on warehouse aus.

    5. Wählen Sie unter Runtime version die Option Snowflake Warehouse Runtime 2.0 aus.

      Wenn Sie Version 2.0 auswählen, stellen Sie sicher, dass Sie über die benötigte Unterstützung für die Abhängigkeiten verfügen, einschließlich Python 3.10. Weitere Informationen dazu finden Sie unter Notebook-Laufzeiten.

    6. Wählen Sie für Query warehouse und Notebook warehouse`Warehouses für die Ausführung von Abfragecode, Kernel und Python-Code aus, wie unter :doc:/user-guide/ui-snowsight/notebooks-create` beschrieben.

    7. Wählen Sie Create aus.

    8. Stellen Sie in dem von Ihnen erstellten Notizbuch unter Packages sicher, dass die folgenden Pakete zur Unterstützung von Code in Ihrem Notizbuch aufgeführt sind:

      • Python ab Version 3.10

      • snowpark-connect, neueste Version

        Wenn Sie diese Pakete hinzufügen müssen, führen Sie die folgenden Schritte aus:

        1. Geben Sie unter Anaconda Packages den Namen des Pakets in das Suchfeld ein.

        2. Wählen Sie den Namen des Pakets aus.

        3. Wählen Sie Save aus.

  2. Um eine Verbindung zum Snowpark Connect for Spark-Server herzustellen und die Verbindung zu testen, kopieren Sie den folgenden Code und fügen Sie ihn in die Python-Zelle des von Ihnen erstellten Notizbuchs ein:

    from snowflake import snowpark_connect
    
    spark = snowpark_connect.server.init_spark_session()
    df = spark.sql("show schemas").limit(10)
    df.show()
    
    Copy

Use a Snowflake Notebook that runs in a workspace

For more information about Snowflake Notebooks in Workspaces, see Snowflake Notebooks in Workspaces.

  1. Erstellen Sie eine PyPI-Integration für den externen Zugriff.

    Sie müssen die Rolle ACCOUNTADMIN verwenden und haben eine Datenbank, auf die Sie zugreifen können.

    Führen Sie die folgenden Befehle in einer SQL-Datei in einem Arbeitsbereich aus.

    USE DATABASE mydb;
    USE ROLE accountadmin;
    
    CREATE OR REPLACE NETWORK RULE pypi_network_rule
    MODE = EGRESS
    TYPE = HOST_PORT
    VALUE_LIST = ('pypi.org', 'pypi.python.org', 'pythonhosted.org', 'files.pythonhosted.org');
    
    CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION pypi_access_integration
    ALLOWED_NETWORK_RULES = (pypi_network_rule)
    ENABLED = true;
    
    Copy
  2. Aktivieren Sie die PyPI-Integration in einem Notebook.

    1. Wählen Sie im Notebook für Service name einen Dienst aus.

    2. Wählen Sie für External access integrations die PyPI-Integration aus, die Sie erstellt haben.

    3. For Python version, select Python 3.11.

    4. Wählen Sie Create aus.

  3. Installieren Sie das snowpark_connect-Paket von PyPI im Notebook, und verwenden Sie dabei Code wie den folgenden:

    pip install snowpark-connect[jdk]
    
    Copy
  4. Starten Sie den Kernel neu.

    • Wählen Sie über die Schaltfläche:ui:Connect die Option Restart kernel aus.

  5. Starten Sie den snowpark_connect-Server mit Code wie dem folgenden:

    import snowflake.snowpark_connect
    
    spark = snowflake.snowpark_connect.server.init_spark_session()
    
    Copy
  6. Führen Sie Ihren Spark-Code aus, wie im folgenden Beispiel gezeigt:

    from pyspark.sql.connect.functions import *
    from pyspark.sql.connect.types import *
    from pyspark.sql import Row
    
    # Sample nested data
    data = [(1, ("Alice", 30))]
    schema = "id INT, info STRUCT<name:STRING, age:INT>"
    
    df = spark.createDataFrame(data, schema=schema)
    df.show()
    
    spark.sql("show databases").show()
    
    Copy