编写代码以支持不同 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.16Scala 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:latestScala 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';
CREATE OR REPLACE PROCEDURE MYPROC(value INT, fromTable STRING, toTable STRING, count INT)
RETURNS INT
LANGUAGE SCALA
RUNTIME_VERSION = '2.13'
PACKAGES = ('com.snowflake:snowpark_2.13:latest')
IMPORTS = ('@mystage/MyCompiledJavaCode.jar')
HANDLER = 'MyJavaClass.run';