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é :

  1. Ajouter la référence de la bibliothèque Snowpark à votre projet

  2. Ajouter la référence de la bibliothèque Snowpark Extensions à votre projet

  3. 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'
    ...
}
Copy

build.sbt

...
libraryDependencies += "com.snowflake" % "snowpark" % "1.6.2"
libraryDependencies += "net.mobilize.snowpark-extensions" % "snowparkextensions" % "0.0.9"
...
Copy

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>
Copy

É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._
Copy

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:_*);
   }

}
Copy

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 :_*)

   }

}
Copy

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é :

  1. Ajouter les références de la bibliothèque Snowpark à votre code migré

  2. 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
Copy

Étape 2 - Installer la bibliothèque Snowpark Extensions

pip install snowflake-snowpark-python
Copy

É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
Copy

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()
Copy

Code de sortie

import snowpark_extensions
import snowflake.snowpark.functions as df
df.select(create_map('name', 'age').alias("map")).collect()
Copy