编写代码以支持不同 Scala 版本

您可以编写代码以支持不同版本的 Scala。对于某些 Snowflake 功能,您需要考虑所使用的 Scala 版本。例如,当您使用 SQL 声明存储过程时,您需要引用 Snowpark 包,其名称需以您所使用的 Scala 版本结尾。

有关各版本间的 Scala 代码差异,请参阅 Scala 文档。

引用 Snowpark 包

当您在代码中引用 Snowpark 包时(例如,在使用 SQL 声明存储过程时),包名称将取决于以下因素:

  • 您正在使用的 Snowpark 包的版本。

  • 您正在使用的 Scala 版本。

下面介绍如何引用不同 Scala 版本的 Snowpark 包。

Snowpark 1.16 及更早版本的包命名规则

引用 Snowpark 1.16 及更早版本的包时,您应使用名称 com.snowflake:snowpark 来引用该包,换言之,不带 Scala 版本后缀。

  • Scala 2.12:com.snowflake:snowpark:1.16

  • Scala 2.13:com.snowflake:snowpark:1.16

Snowpark 1.17 及更高版本的包命名规则

引用 Snowpark 1.17 及更高版本的包时,应使用 com.snowflake:snowpark_<scala_version> 作为包名称。

  • Scala 2.12:com.snowflake:snowpark_2.12:latest

  • Scala 2.13:com.snowflake:snowpark_2.13:latest

示例

以下示例展示了如何引用 Snowpark 1.17 及更高版本的包。

CREATE OR REPLACE PROCEDURE MYPROC(value INT, fromTable STRING, toTable STRING, count INT)
  RETURNS INT
  LANGUAGE SCALA
  RUNTIME_VERSION = '2.12'
  PACKAGES = ('com.snowflake:snowpark_2.12:latest')
  IMPORTS = ('@mystage/MyCompiledJavaCode.jar')
  HANDLER = 'MyJavaClass.run';
Copy
语言: 中文