为 Snowpark Scala 设置 SBT REPL

本主题介绍如何为 Snowpark 设置 SBT REPL。

本主题内容:

在 sbt 中创建新的 Scala 项目

接下来,为 Snowpark 创建一个新的 Scala 项目。

  1. 为项目创建一个新目录,然后切换到该目录。

    mkdir snowpark_project
    cd snowpark_project
    
    Copy
  2. 运行 sbt new 命令,并指定要用于创建新项目的 模板 (https://www.scala-sbt.org/1.x/docs/sbt-new-and-Templates.html)。例如:

    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.12.1"
  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.cn: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

    请注意以下事项:

    • <placeholders> 替换为您用于连接到 Snowflake 的值。

    • 对于 <account_identifier>,请指定您的 账户标识符

    • 如果您更喜欢使用 密钥对身份验证,则执行以下操作:

      • PASSWORD 替换为 PRIVATE_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
语言: 中文