为 Snowpark Scala 设置 SBT REPL¶
本主题介绍如何为 Snowpark 设置 SBT REPL。
本主题内容:
在 sbt 中创建新的 Scala 项目¶
接下来,为 Snowpark 创建一个新的 Scala 项目。
为项目创建一个新目录,然后切换到该目录。
mkdir snowpark_project cd snowpark_project
运行
sbt new
命令,并指定要用于创建新项目的 模板 (https://www.scala-sbt.org/1.x/docs/sbt-new-and-Templates.html)。例如:sbt new scala/hello-world.g8
输入项目的名称。这将创建一个具有该名称的项目目录。
为 Snowpark 配置 sbt 项目¶
接下来,为 Snowpark 配置项目。
在项目的 build.sbt
文件中,进行以下变更:
如果
scalaVersion
设置与计划使用的版本不匹配,请更新设置。例如:scalaVersion := "2.12.13"
请注意,您必须使用 支持与 Snowpark 库配合使用的 Scala 版本。
将 Snowpark 库添加到依赖项列表中。例如:
libraryDependencies += "com.snowflake" % "snowpark" % "1.12.1"
添加以下行以配置 REPL:
Compile/console/scalacOptions += "-Yrepl-class-based" Compile/console/scalacOptions += "-Yrepl-outdir" Compile/console/scalacOptions += "repl_classes"
验证 sbt 项目配置¶
要验证您是否已将项目配置为使用 Snowpark,请运行简单的 Snowpark 代码示例。
在
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() } }
请注意以下事项:
将
<placeholders>
替换为您用于连接到 Snowflake 的值。对于
<account_identifier>
,请指定您的 账户标识符。如果您更喜欢使用 密钥对身份验证,则执行以下操作:
将
PASSWORD
替换为PRIVATE_KEY_FILE
,并将其设置为私钥文件的路径。如果私钥已加密,则必须将
PRIVATE_KEY_FILE_PWD
设置为用于解密私钥的密码。
作为设置
PRIVATE_KEY_FILE
和PRIVATE_KEY_FILE_PWD
的替代方法,您可以将PRIVATEKEY
属性设置为私钥文件中 未加密私钥 的字符串值。例如,如果私钥文件未加密,请将其设置为文件中密钥的值(不带
-----BEGIN PRIVATE KEY-----
和-----END PRIVATE KEY-----
页眉和页脚,也没有行尾)。请注意,如果私钥已加密,则必须先解密私钥,然后才能将其设置为
PRIVATEKEY
属性的值。
如果您计划创建 UDFs,则执行以下操作:
不要设置
object
来扩展App
Trait。有关详细信息,请参阅 使用 App Trait 在对象中创建 UDFs 的注意事项。不要设置
object
来扩展不可序列化的类或 Trait。
切换到项目目录,执行以下命令以运行示例代码:
sbt "runMain Main"