異なる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.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