Snowpark Scalaの SBT REPL の設定

このトピックでは、Snowparkの SBT REPL を設定する方法について説明します。

このトピックの内容:

sbtでの新しいScalaプロジェクトの作成

次に、Snowpark用の新しいScalaプロジェクトを作成します。

  1. プロジェクト用に新しいディレクトリを作成し、そのディレクトリに移動します。

    mkdir snowpark_project
    cd snowpark_project
    
    Copy
  2. sbt new コマンドを実行し、新しいプロジェクトの作成に使用する テンプレート を指定します。例:

    sbt new scala/hello-world.g8
    
    Copy

    プロジェクトの名前を入力します。これにより、その名前のプロジェクトディレクトリが作成されます。

Snowpark用sbtプロジェクトの構成

次に、Snowpark用プロジェクトを構成します。

プロジェクトの build.sbt ファイルで、次を変更します。

  1. scalaVersion 設定が使用する予定のバージョンと一致しない場合は、設定を更新します。例:

    scalaVersion := "2.12.13"
    
    Copy

    Snowparkライブラリとの使用がサポートされているScalaバージョン を使用する必要があることに注意してください。

  2. Snowparkライブラリを依存関係のリストに追加します。例:

    libraryDependencies += "com.snowflake" % "snowpark" % "1.10.0"
  1. 次の行を追加して、 REPL を構成します。

    Compile/console/scalacOptions += "-Yrepl-class-based"
    Compile/console/scalacOptions += "-Yrepl-outdir"
    Compile/console/scalacOptions += "repl_classes"
    
    Copy

sbtプロジェクト構成の確認

Snowparkを使用するようにプロジェクトを構成したことを確認するには、Snowparkコードの簡単な例を実行します。

  1. src/main/scala/Main.scala ファイルで、内容を次のコードに置き換えます。

    import com.snowflake.snowpark._
    import com.snowflake.snowpark.functions._
    
    object Main {
      def main(args: Array[String]): Unit = {
        // Replace the <placeholders> below.
        val configs = Map (
          "URL" -> "https://<account_identifier>.snowflakecomputing.com:443",
          "USER" -> "<user name>",
          "PASSWORD" -> "<password>",
          "ROLE" -> "<role name>",
          "WAREHOUSE" -> "<warehouse name>",
          "DB" -> "<database name>",
          "SCHEMA" -> "<schema name>"
        )
        val session = Session.builder.configs(configs).create
        session.sql("show tables").show()
      }
    }
    
    Copy

    次の点に注意してください。

    • <プレースホルダー> をSnowflakeへの接続に使用する値に置き換えます。

    • <アカウント識別子> には、使用する アカウント識別子 を指定します。

    • キーペア認証 を使用する場合は、

      • PASSWORDPRIVATE_KEY_FILE に置き換え、秘密キーファイルへのパスに設定します。

      • 秘密キーが暗号化されている場合は、秘密キーを復号化するためのパスフレーズに PRIVATE_KEY_FILE_PWD を設定する必要があります。

      PRIVATE_KEY_FILEPRIVATE_KEY_FILE_PWD を設定する代わりに、 PRIVATEKEY プロパティを秘密キーファイルからの 暗号化されていない 秘密キーの文字列値に設定できます。

      • たとえば、秘密キーファイルが暗号化されていない場合は、これをファイル内のキーの値に設定します(-----BEGIN PRIVATE KEY----------END PRIVATE KEY----- ヘッダーとフッターなし、行末なし)。

      • 秘密キーが暗号化されている場合は、 PRIVATEKEY プロパティの値として設定する前に、キーを復号化する必要があることに注意してください。

  2. プロジェクトディレクトリに移動し、次のコマンドを実行してサンプルコードを実行します。

    sbt "runMain Main"
    
    Copy