Setting Up the SBT REPL for Snowpark

This topic explains how to set up the SBT REPL for Snowpark.

In this Topic:

Creating a New Scala Project in sbt

Next, create a new Scala project for Snowpark.

  1. Create a new directory for your project, and change to that directory.

    mkdir snowpark_project
    cd snowpark_project
  2. Run the sbt new command, and specify the template that you want to use to create the new project. For example:

    sbt new scala/hello-world.g8

    Enter a name for your project. This creates a project directory with that name.

Configuring the sbt Project for Snowpark

Next, configure the project for Snowpark.

In the build.sbt file for your project, make the following changes:

  1. If the scalaVersion setting does not match the version that you plan to use, update the setting. For example:

    scalaVersion := "2.12.13"

    Note that you must use a Scala version that is supported for use with the Snowpark library.

  2. Add the OSGEO release repository to the list of resolvers, and add the Snowpark library to the list of dependencies. For example:

    resolvers += "OSGeo Release Repository" at ""
    libraryDependencies += "com.snowflake" % "snowpark" % "0.6.0"
  3. Add the following lines to configure the REPL:

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

Verifying Your sbt Project Configuration

To verify that you have configured your project to use Snowpark, run a simple example of Snowpark code.

  1. In the src/main/scala/Main.scala file, replace the contents with the code below:

    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>",
          "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()

    Note the following:

    • Replace the <placeholders> with values that you use to connect to Snowflake.

    • For <account_identifier>, specify your account identifier.

    • If you prefer to use key pair authentication:

      • Replace PASSWORD with PRIVATE_KEY_FILE, and set it to the path to your private key file.

      • If the private key is encrypted, you must set PRIVATE_KEY_FILE_PWD to the passphrase for decrypting the private key.

      As an alternative to setting PRIVATE_KEY_FILE, you can set the PRIVATEKEY property to the value of the private key from the private key file. Note that you must remove the -----BEGIN ... PRIVATE KEY----- and -----END ... PRIVATE KEY----- lines as well as the carriage returns and line feeds.

    • If you plan to create UDFs:

  2. Change to your project directory, and run the following command to run the sample code:

    sbt "runMain Main"