Snowpark Migration Accelerator : Déploiement du code de sortie¶
Pour exécuter le code de sortie généré par l’outil Snowpark Migration Accelerator (SMA), suivez ces recommandations spécifiques à l’environnement en fonction de votre plateforme source.
Spark Scala¶
Avant d’exécuter votre code Apache Spark migré dans Snowpark, veuillez prendre connaissance de ces considérations importantes :
Ajouter une référence de la bibliothèque Snowpark et Snowpark Extensions¶
Le projet migré doit inclure des références à la fois à la bibliothèque Snowpark et à ses extensions.
Snowpark Extensions¶
Snowpark Extensions est une bibliothèque qui ajoute des fonctions Apache Spark à la bibliothèque Snowpark standard. Ces fonctions ne sont pas disponibles actuellement dans Snowpark. Cette bibliothèque aide les développeurs à migrer plus facilement leurs projets d’Apache Spark vers Snowpark.
Suivez ces étapes pour référencer les bibliothèques Snowpark et Snowpark Extensions dans votre code migré :
Ajouter la référence de la bibliothèque Snowpark à votre projet
Ajouter la référence de la bibliothèque Snowpark Extensions à votre projet
Mettre à jour votre code pour utiliser ces bibliothèques
Étape 1 - Ajouter les références des bibliothèques Snowpark et Snowpark extensions au fichier de configuration du projet¶
L’outil ajoute automatiquement ces dépendances au fichier de configuration de votre projet. Une fois les dépendances ajoutées, votre outil de construction se chargera de les résoudre.
En fonction de l’extension de votre fichier de configuration de projet, l’outil ajoute automatiquement les références appropriées de la manière suivante :
build.gradle¶
dependencies {
implementation 'com.snowflake:snowpark:1.6.2'
implementation 'net.mobilize.snowpark-extensions:snowparkextensions:0.0.9'
...
}
build.sbt¶
...
libraryDependencies += "com.snowflake" % "snowpark" % "1.6.2"
libraryDependencies += "net.mobilize.snowpark-extensions" % "snowparkextensions" % "0.0.9"
...
pom.xml¶
<dependencies>
<dependency>
<groupId>com.snowflake</groupId>
<artifactId>snowpark</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>net.mobilize.snowpark-extensions</groupId>
<artifactId>snowparkextensions</artifactId>
<version>0.0.9</version>
</dependency>
...
</dependencies>
Étape 2 - Ajouter les instructions d’importation de la bibliothèque Snowpark Extensions¶
L’outil ajoute automatiquement ces deux instructions d’importation à chaque fichier .scala généré.
import com.snowflake.snowpark_extensions.Extensions._
import com.snowflake.snowpark_extensions.Extensions.functions._
Exemple de code¶
Le code ci-dessous utilise les fonctions hex et isin, qui sont natives de Spark mais pas de Snowpark. Cependant, le code s’exécutera quand même avec succès car ces fonctions sont fournies par Snowpark Extensions.
Code d’entrée¶
package com.mobilize.spark
import org.apache.spark.sql._
object Main {
def main(args: Array[String]) : Unit = {
var languageArray = Array("Java");
var languageHex = hex(col("language"));
col("language").isin(languageArray:_*);
}
}
Code de sortie¶
package com.mobilize.spark
import com.snowflake.snowpark._
import com.snowflake.snowpark_extensions.Extensions._
import com.snowflake.snowpark_extensions.Extensions.functions._
object Main {
def main(args: Array[String]) : Unit = {
var languageArray = Array("Java");
// hex does not exist on Snowpark. It is a extension.
var languageHex = hex(col("language"));
// isin does not exist on Snowpark. It is a extension.
col("language").isin(languageArray :_*)
}
}
PySpark¶
Avant d’exécuter votre code PySpark migré dans Snowpark, veuillez prendre connaissance de ces considérations importantes :
Installer les bibliothèques Snowpark et Snowpark Extensions¶
Le projet migré doit inclure des références à la fois à la bibliothèque Snowpark et à ses extensions.
Snowpark Extensions¶
Snowpark Extensions est une bibliothèque qui ajoute des fonctions de type PySpark à la bibliothèque Snowpark standard. Ces fonctions ne sont actuellement pas disponibles dans Snowpark. Cette bibliothèque aide les développeurs à migrer plus facilement leurs projets de PySpark vers Snowpark.
Suivez ces étapes pour référencer les bibliothèques Snowpark et Snowpark Extensions dans votre code migré :
Ajouter les références de la bibliothèque Snowpark à votre code migré
Inclure les références de la bibliothèque Snowpark Extensions là où cela est nécessaire
Étape 1 - Installer la bibliothèque Snowpark¶
pip install snowpark-extensions
Étape 2 - Installer la bibliothèque Snowpark Extensions¶
pip install snowflake-snowpark-python
Étape 3 - Ajouter les instructions d’importation de la bibliothèque Snowpark Extensions¶
L’outil ajoute automatiquement l’instruction d’importation PySpark à tous les fichiers qui requièrent la fonctionnalité PySpark.
import snowpark_extensions
Exemple de code¶
La fonction create_map
n’est pas disponible dans PySpark mais est prise en charge dans Snowpark grâce à ses extensions. Cela signifie que votre code fonctionnera correctement dans Snowpark sans aucune modification.
Code d’entrée¶
import pyspark.sql.functions as df
df.select(create_map('name', 'age').alias("map")).collect()
Code de sortie¶
import snowpark_extensions
import snowflake.snowpark.functions as df
df.select(create_map('name', 'age').alias("map")).collect()