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

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

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

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"
        }
      ]
    }
  ]
}
Copy

Ausgabeordner

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"
        }
      ]
    }
  ]
}
Copy

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.