为 Snowpark Scala 设置 Scala REPL¶
本主题介绍如何为 Snowpark 设置 Scala REPL。
本主题内容:
安装 Scala REPL¶
Scala REPL (https://docs.scala-lang.org/overviews/repl/overview.html) (read-eval-print loop (link removed)) 随 Scala 构建工具提供。要安装 受支持的 Scala 构建工具 版本,请 找到您计划使用的版本 (https://www.scala-lang.org/download/all.html),然后按照安装说明进行操作。
运行 Scala REPL¶
要在 Scala REPL 中使用 Snowpark 库,请执行以下操作:
如果尚未执行此操作,请 下载 Snowpark 库归档文件并提取文件的内容。
通过运行归档文件中提供的
run.sh
shell 脚本来启动 REPL:
cd <path>/snowpark-1.12.1 ./run.sh
run.sh
脚本执行以下操作:
将 Snowpark 库和依赖项添加到类路径。
为 Scala REPL 生成的类创建一个 <path>/snowpark-1.12.1/repl_classes/ 目录。
预加载
preload.scala
文件,该文件将导入com.snowflake.snowpark
包和com.snowflake.snowpark.functions
对象。
如果您使用不同的 Scala REPL 版本:
将 Snowpark 库 JAR 文件和依赖项添加到类路径。
Snowpark 库 JAR 文件位于提取 TAR/ZIP 归档文件的顶级目录中。
依赖项位于提取的 TAR/ZIP 归档文件的
lib
目录中。
为 REPL 生成的类创建一个临时目录,并配置 REPL 以在该目录中生成类。
稍后,在定义内联用户定义的函数 (UDFs) 时,您需要 将 REPL 类的目录指定为依赖项。
验证 Scala REPL 配置¶
要验证您是否已将项目配置为使用 Snowpark,请运行简单的 Snowpark 代码示例。
在包含从
.zip
/.tar.gz
文件提取的文件的目录(即包含run.sh
脚本的目录)中,创建一个包含以下代码的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
属性设置为私钥文件中:emph:`未加密私钥`的字符串值。例如,如果私钥文件未加密,请将其设置为文件中密钥的值(不带
-----BEGIN PRIVATE KEY-----
和-----END PRIVATE KEY-----
页眉和页脚,也没有行尾)。请注意,如果私钥已加密,则必须先解密私钥,然后才能将其设置为
PRIVATEKEY
属性的值。
如果您计划创建 UDFs,则执行以下操作:
不要设置
object
来扩展App
Trait。有关详细信息,请参阅 使用 App Trait 在对象中创建 UDFs 的注意事项。不要设置
object
来扩展不可序列化的类或 Trait。
在目录中,运行
run.sh
脚本,以使用 Snowpark 库所需的设置启动 Scala REPL:./run.sh
在 Scala REPL shell 中,输入以下命令以加载您刚刚创建的示例文件:
:load Main.scala
运行以下语句,以执行您加载的类的
main
方法。Main.main(Array[String]())
这将运行
SHOW TABLES
命令并打印结果的前 10 行。