Snowpark Migration Accelerator: Anleitung zur SMA-Ausführung¶
PySpark-Eingabe¶
Das Feature SMA-Checkpoints erfordert einen PySpark-Workload als Einstiegspunkt, da dieser davon abhängt, die Verwendung von PySpark DataFrames zu erkennen. Diese Anleitung führt Sie anhand eines einzigen Python-Skripts durch das Feature und bietet ein einfaches Beispiel dafür, wie Checkpoints generiert und innerhalb eines typischen PySpark-Workflows verwendet werden.
Eingabe-Workload

Beispiel für Inhalt einer .py-Datei
from pyspark.sql import SparkSession
from pyspark.sql import functions as F
spark = SparkSession.builder.appName("SparkFunctionsExample2").getOrCreate()
df1 = spark.createDataFrame([("Alice", "NY"), ("Bob", "LA")], ["name", "city"])
df2 = spark.createDataFrame([(10,), (20,)], ["number"])
df1_with_index = df1.withColumn("index", F.monotonically_increasing_id())
df2_with_index = df2.withColumn("index", F.monotonically_increasing_id())
df3 = df1_with_index.join(df2_with_index, on="index").drop("index")
df3.show()
Migration von Workload¶
Feature aktiviert¶
Wenn das Feature SMA-Checkpoints aktiviert ist, wird die Datei checkpoints.json generiert. Wenn das Feature deaktiviert ist, wird diese Datei weder im Eingabe- noch im Ausgabeordner erstellt. Unabhängig davon, ob das Feature aktiviert ist, werden immer die folgenden Inventardateien erstellt: DataFramesInventory.csv und CheckpointsInventory.csv. Diese Dateien enthalten Metadaten, die für die Analyse und das Debugging erforderlich sind.
Konvertierungsprozess¶
Um Ihr eigenes Projekt zu konvertieren, folgen Sie bitte der folgenden Anleitung: SMA-Benutzerhandbuch.
Einstellungen für das Feature SMA-Checkpoints¶
Als Bestandteil des Konvertierungsprozesses können Sie Ihre Konvertierungseinstellungen anpassen und einen Blick auf die Feature-Einstellungen SMA-Checkpoints werfen.
Hinweis: In diesem Benutzerhandbuch werden die standardmäßigen Konvertierungseinstellungen verwendet.
Konvertierungsergebnisse¶
Sobald der Migrationsprozess abgeschlossen ist, sollte das Feature SMA-Checkpoints zwei neue Inventardateien erstellt und die Datei checkpoints.json sowohl zum Eingabe- als auch zum Ausgabeordner hinzugefügt haben.
Werfen Sie einen Blick auf die SMA-Checkpoints-Inventare, um die zugehörigen Inventare zu überprüfen.
Eingabeordner¶

Inhalt der Datei „checkpoints.json“
{
"createdBy": "Snowpark Migration Accelerator",
"comment": "This file was automatically generated by the SMA tool as checkpoints collection was enabled in the tool settings. This file may also be modified or deleted during SMA execution.",
"type": "Collection",
"pipelines": [
{
"entryPoint": "sample.py",
"checkpoints": [
{
"name": "sample$BBVOC7$df1$1",
"file": "sample.py",
"df": "df1",
"location": 1,
"enabled": true,
"mode": 1,
"sample": "1.0"
},
{
"name": "sample$BBVOC7$df2$1",
"file": "sample.py",
"df": "df2",
"location": 1,
"enabled": true,
"mode": 1,
"sample": "1.0"
},
{
"name": "sample$BBVOC7$df3$1",
"file": "sample.py",
"df": "df3",
"location": 1,
"enabled": true,
"mode": 1,
"sample": "1.0"
}
]
}
]
}
Ausgabeordner¶

Inhalt der Datei „checkpoints.json“
{
"createdBy": "Snowpark Migration Accelerator",
"comment": "This file was automatically generated by the SMA tool as checkpoints collection was enabled in the tool settings. This file may also be modified or deleted during SMA execution.",
"type": "Validation",
"pipelines": [
{
"entryPoint": "sample.py",
"checkpoints": [
{
"name": "sample$BBVOC7$df1$1",
"file": "sample.py",
"df": "df1",
"location": 1,
"enabled": true,
"mode": 1,
"sample": "1.0"
},
{
"name": "sample$BBVOC7$df2$1",
"file": "sample.py",
"df": "df2",
"location": 1,
"enabled": true,
"mode": 1,
"sample": "1.0"
},
{
"name": "sample$BBVOC7$df3$1",
"file": "sample.py",
"df": "df3",
"location": 1,
"enabled": true,
"mode": 1,
"sample": "1.0"
}
]
}
]
}
Sobald der SMA-Ausführungsablauf abgeschlossen ist, und sowohl der Eingabe- als auch der Ausgabeordner die jeweilige Datei checkpoints.json enthalten, können Sie mit dem Ausführungsprozess für die Snowpark-Checkpoints beginnen.