为 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 库,请执行以下操作:

  1. 如果尚未执行此操作,请 下载 Snowpark 库归档文件并提取文件的内容

  2. 通过运行归档文件中提供的 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 版本:

  1. 将 Snowpark 库 JAR 文件和依赖项添加到类路径。

    • Snowpark 库 JAR 文件位于提取 TAR/ZIP 归档文件的顶级目录中。

    • 依赖项位于提取的 TAR/ZIP 归档文件的 lib 目录中。

  2. 为 REPL 生成的类创建一个临时目录,并配置 REPL 以在该目录中生成类。

稍后,在定义内联用户定义的函数 (UDFs) 时,您需要 将 REPL 类的目录指定为依赖项

验证 Scala REPL 配置

要验证您是否已将项目配置为使用 Snowpark,请运行简单的 Snowpark 代码示例。

  1. 在包含从 .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()
      }
    }
    
    Copy

    请注意以下事项:

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

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

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

      • PASSWORD 替换为 PRIVATE_KEY_FILE,并将其设置为私钥文件的路径。

      • 如果私钥已加密,则必须将 PRIVATE_KEY_FILE_PWD 设置为用于解密私钥的密码。

      作为设置 PRIVATE_KEY_FILEPRIVATE_KEY_FILE_PWD 的替代方法,您可以将 PRIVATEKEY 属性设置为私钥文件中:emph:`未加密私钥`的字符串值。

      • 例如,如果私钥文件未加密,请将其设置为文件中密钥的值(不带 -----BEGIN PRIVATE KEY----------END PRIVATE KEY----- 页眉和页脚,也没有行尾)。

      • 请注意,如果私钥已加密,则必须先解密私钥,然后才能将其设置为 PRIVATEKEY 属性的值。

  2. 在目录中,运行 run.sh 脚本,以使用 Snowpark 库所需的设置启动 Scala REPL:

    ./run.sh
    
    Copy
  3. 在 Scala REPL shell 中,输入以下命令以加载您刚刚创建的示例文件:

    :load Main.scala
    
    Copy
  4. 运行以下语句,以执行您加载的类的 main 方法。

    Main.main(Array[String]())
    
    Copy

    这将运行 SHOW TABLES 命令并打印结果的前 10 行。

语言: 中文