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

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

  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

É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

The create_map function is not available in PySpark but is supported in Snowpark through its extensions. This means your code will work correctly in Snowpark without any modifications.

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