Schreiben von Code zur Unterstützung verschiedener Scala-Versionen¶
Sie können Code schreiben, um verschiedene Versionen von Scala zu unterstützen. Bei einigen Snowflake-Features müssen Sie die von Ihnen verwendete Scala-Version berücksichtigen. Wenn Sie zum Beispiel eine gespeicherte Prozedur mit SQL deklarieren, müssen Sie auf das Snowpark-Paket mit einem Namen verweisen, der mit der von Ihnen verwendeten Scala-Version endet.
Informationen zu den Unterschieden im Scala-Code zwischen den Versionen finden Sie in der Scala-Dokumentation.
Verweisen auf Snowpark-Pakete¶
Wenn Sie in Ihrem Code auf das Snowpark-Paket verweisen, z. B. wenn Sie eine gespeicherte Prozedur mit SQL deklarieren, hängt der Paketname von Folgendem ab:
Die Version des Snowpark-Pakets, das Sie verwenden.
Version von Scala, die Sie verwenden.
Im Folgenden wird beschrieben, wie Sie für verschiedene Scala-Versionen auf das Snowpark-Paket verweisen.
Namen für Snowpark-Paketversionen 1.16 und früher¶
Wenn Sie auf das Snowpark-Paket vor Version 1.16 verweisen, referenzieren Sie das Paket mit dem Namen com.snowflake:snowpark – mit anderen Worten, ohne das Suffix der Scala-Version.
Scala 2.12:
com.snowflake:snowpark:1.16Scala 2.13:
com.snowflake:snowpark:1.16
Namen für Snowpark-Paketversionen 1.17 und höher¶
Wenn Sie auf das Snowpark -Paket 1.17 und höher verweisen, referenzieren Sie das Paket mit dem Namen com.snowflake:snowpark_<scala_version>.
Scala 2.12:
com.snowflake:snowpark_2.12:latestScala 2.13:
com.snowflake:snowpark_2.13:latest
Beispiele¶
Die folgenden Beispiele zeigen, wie Sie auf die Snowpark-Paketversionen 1.17 und höher verweisen.
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';