異なるScalaバージョンをサポートするコードの記述¶
Scalaのさまざまなバージョンをサポートするコードを記述できます。一部のSnowflake機能については、使用しているScalaバージョンのアカウントが必要です。たとえば、 SQL を使用してストアドプロシージャを宣言する場合は、使用しているScalaバージョンで終わる名前でSnowparkパッケージを参照する必要があります。
バージョン間のScalaコードの違いについては、Scalaのドキュメントをご参照ください。
Snowparkパッケージの参照¶
SQL を使用してストアドプロシージャを宣言するときなど、コード内でSnowparkパッケージを参照する場合、パッケージ名は次のように異なります。
使用している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';