Snowpark Migration Accelerator: Bereitstellung des Ausgabecodes

Um den vom Snowpark Migration Accelerator (SMA) generierten Ausgabecode auszuführen, befolgen Sie diese umgebungsspezifischen Empfehlungen, die auf Ihrer Quellplattform basieren.

Spark Scala

Bevor Sie Ihren migrierten Apache Spark-Code in Snowpark ausführen, beachten Sie bitte diese wichtigen Hinweise:

Hinzufügen von Referenzen zu Snowpark- und zur Snowpark Extensions-Bibliothek

Das migrierte Projekt muss Verweise sowohl auf die Snowpark-Bibliothek als auch auf ihre Erweiterungen enthalten.

Snowpark Extensions

Snowpark Extensions ist eine Bibliothek, die Apache Spark-Features zur standardmäßigen Snowpark-Bibliothek hinzufügt. Diese Features sind derzeit nicht in Snowpark verfügbar. Diese Bibliothek hilft Entwicklern, ihre Projekte leichter von Apache Spark zu Snowpark zu migrieren.

Folgen Sie diesen Schritten, um Snowpark- und Snowpark Extensions-Bibliotheken in Ihrem migrierten Code zu referenzieren:

  1. Fügen Sie die Referenz der Snowpark-Bibliothek zu Ihrem Projekt hinzu

  2. Fügen Sie die Referenz der Snowpark Extensions-Bibliothek zu Ihrem Projekt hinzu

  3. Aktualisieren Sie Ihren Code, um diese Bibliotheken zu verwenden

Schritt 1 - Fügen Sie Referenzen zu Snowpark und Snowpark Extensions-Bibliothek zur Projektkonfigurationsdatei hinzu

Das Tool fügt diese Abhängigkeiten automatisch zu Ihrer Projektkonfigurationsdatei hinzu. Nachdem die Abhängigkeiten hinzugefügt wurden, kümmert sich Ihr Build-Tool um die Auflösung der Abhängigkeiten.

Basierend auf der Dateierweiterung Ihrer Projektkonfigurationsdatei fügt das Tool automatisch die entsprechenden Referenzen auf folgende Weise hinzu:

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

Schritt 2 - Hinzufügen von Importanweisungen für die Snowpark Extensions-Bibliothek

Das Tool fügt diese beiden Importanweisungen automatisch zu jeder generierten .scala-Datei hinzu.

import com.snowflake.snowpark_extensions.Extensions._
import com.snowflake.snowpark_extensions.Extensions.functions._
Copy

Codebeispiel

Der folgende Code verwendet die Funktionen hex und isin, die in Spark, aber nicht in Snowpark enthalten sind. Der Code wird jedoch weiterhin erfolgreich ausgeführt, da diese Funktionen durch Snowpark Extensions bereitgestellt werden.

Eingabecode

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

Ausgabecode

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

Bevor Sie Ihren migrierten PySpark-Code in Snowpark ausführen, beachten Sie bitte diese wichtigen Hinweise:

Installieren Sie die Snowpark- und Snowpark Extensions-Bibliotheken

Das migrierte Projekt muss Verweise sowohl auf die Snowpark-Bibliothek als auch auf ihre Erweiterungen enthalten.

Snowpark Extensions

Snowpark Extensions ist eine Bibliothek, die die Standard-Snowpark-Bibliothek um PySpark-ähnliche Features erweitert. Diese Features sind derzeit nicht in Snowpark verfügbar. Diese Bibliothek hilft Entwicklern, ihre Projekte leichter von PySpark nach Snowpark zu migrieren.

Folgen Sie diesen Schritten, um Snowpark- und Snowpark Extensions-Bibliotheken in Ihrem migrierten Code zu referenzieren:

  1. Fügen Sie Snowpark-Bibliothek-Referenzen Ihrem migierten Code hinzu

  2. Fügen Sie bei Bedarf Referenzen auf die Snowpark Extensions-Bibliothek ein.

Schritt 1 - Installieren Sie die Snowpark-Bibliothek

pip install snowpark-extensions
Copy

Schritt 2 - Installieren Sie die Snowpark Extensions-Bibliothek

pip install snowflake-snowpark-python
Copy

Schritt 3 - Fügen Sie Importanweisungen der Snowpark Extensions-Bibliothek hinzu

Das Tool fügt die PySpark-Importanweisung automatisch zu jeder Datei hinzu, die die PySpark-Funktion benötigt.

import snowpark_extensions
Copy

Codebeispiel

Die create_map-Funktion ist in PySpark nicht verfügbar, wird aber in Snowpark durch seine Erweiterungen unterstützt. Das bedeutet, dass Ihr Code in Snowpark ohne jegliche Änderungen korrekt funktioniert.

Eingabecode

import pyspark.sql.functions as df
df.select(create_map('name', 'age').alias("map")).collect()
Copy

Ausgabecode

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