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:
Fügen Sie die Referenz der Snowpark-Bibliothek zu Ihrem Projekt hinzu
Fügen Sie die Referenz der Snowpark Extensions-Bibliothek zu Ihrem Projekt hinzu
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'
...
}
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>
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._
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:_*);
}
}
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 :_*)
}
}
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:
Fügen Sie Snowpark-Bibliothek-Referenzen Ihrem migierten Code hinzu
Fügen Sie bei Bedarf Referenzen auf die Snowpark Extensions-Bibliothek ein.
Schritt 1 - Installieren Sie die Snowpark-Bibliothek¶
pip install snowpark-extensions
Schritt 2 - Installieren Sie die Snowpark Extensions-Bibliothek¶
pip install snowflake-snowpark-python
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
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()
Ausgabecode¶
import snowpark_extensions
import snowflake.snowpark.functions as df
df.select(create_map('name', 'age').alias("map")).collect()