Snowflake NotebooksからSparkワークロードを実行

Sparkクラスターを管理することなく、Snowflake NotebooksからSparkワークロードをインタラクティブに実行できます。ワークロードはSnowflakeインフラストラクチャ上で実行されます。

Snowflake上で実行するSparkワークロードを開発するために、Snowflake Notebooksをクライアントとして使用するには:

  1. Snowflake Notebooksの使用

  2. ノートブック内で、Sparkセッションを開始します。

  3. 価値の高い顧客の注文をフィルタリングしたり、収益を集計したりするなど、データをロード、変換、分析するために、 PySpark コードを書き込みます。

ウェアハウス上で動作するSnowflake Notebookを使用する

Snowflake Notebooksの詳細については、 ノートブックを作成する をご参照ください。

  1. 次の手順を実行して、Snowflake Notebooksを作成します。

    1. Snowsight にサインインします。

    2. ナビゲーションメニューで + Create » Notebook » New Notebook を選択します。

    3. Create notebook ダイアログで、新しいノートブックの名前、データベース、スキーマを入力します。

      詳細については、 ノートブックを作成する をご参照ください。

    4. Runtime には、 Run on warehouse を選択します。

    5. Runtime version には、 Snowflake Warehouse Runtime 2.0 を選択します。

      バージョン2.0を選択すると、 Python 3.10など、必要な依存関係のサポートがあることを確認できます。詳細については、 Notebookランタイム をご参照ください。

    6. ノートブックを作成する で説明されているように、Query warehouse および :ui:`Notebook warehouse`で、クエリコードとカーネルとPythonコードを実行するウェアハウスを選択します。

    7. Create を選択します。

    8. 作成したノートブックの :ui:`Packages`内に、ノートブックでコードをサポートするため以下のパッケージがリストされていることを確認してください。

      • Pythonバージョン3.10以降。

      • snowflake-dataframe-processor、最新バージョン

        これらのパッケージを追加する必要がある場合は、以下のステップを実行します。

        1. :ui:`Anaconda Packages`で、検索ボックスにパッケージ名を入力します。

        2. パッケージ名を選択します。

        3. Save を選択します。

  2. Snowpark Connect for Spark サーバーに接続してテストするには、以下のコードをコピーして、作成したノートブックのPythonセルに貼り付けます。

    # Set up the env for Java libraries and enable the Spark Connect Mode
    
    import os
    
    os.environ['JAVA_HOME'] = os.environ["CONDA_PREFIX"]
    os.environ['JAVA_LD_LIBRARY_PATH'] = os.path.join(os.environ["CONDA_PREFIX"], 'lib', 'server')
    os.environ["SPARK_LOCAL_HOSTNAME"] = "127.0.0.1"
    os.environ["SPARK_CONNECT_MODE_ENABLED"] = "1"
    
    from snowflake import snowpark_connect
    from snowflake.snowpark.context import get_active_session
    import traceback
    
    session = get_active_session()
    snowpark_connect.start_session(snowpark_session = session)
    
    Copy
  3. Pythonコード用に新しいセルを追加するには、先ほど貼り付けたコードがあるセルにカーソルを合わせ、 + Python を選択します。

  4. Snowpark Connect for Spark を使用するコードを実行するには、次のコードをコピーして、追加した新しいPythonセルに貼り付けます。

    # Here is your normal pyspark code. You can of course have them in other Python Cells
    spark = snowpark_connect.get_session()
    df = spark.sql("show schemas").limit(10)
    df.show()
    
    Copy