Snowpark Migration Accelerator: Guia de execução do SMA

Entrada do PySpark

O recurso do SMA-Checkpoints requer uma carga de trabalho PySpark como ponto de entrada, pois depende da detecção do uso de DataFrames PySpark. Este passo a passo vai guiar você pelo recurso usando um único script Python, fornecendo um exemplo simples de como os pontos de verificação são gerados e utilizados em um fluxo de trabalho PySpark típico.

Carga de trabalho de entrada

Carga de trabalho de entrada

Conteúdo do arquivo Sample.py

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

Migração da carga de trabalho

Recurso ativado

Se o recurso SMA-Checkpoints estiver ativado, um arquivo checkpoints.json será gerado. Se o recurso estiver desativado, esse arquivo não será criado nas pastas de entrada ou saída. Independentemente de o recurso estar ativado, os seguintes arquivos de inventário serão sempre gerados: DataFramesInventory.csv e CheckpointsInventory.csv. Esses arquivos fornecem metadados essenciais para análise e depuração.

Processo de conversão

Para criar e converter seu próprio projeto, siga este guia: Guia do usuário do SMA.

Configurações do recurso SMA-Checkpoints

Como parte do processo de conversão, você pode personalizar suas configurações de conversão. Consulte as configurações do recurso SMA-Checkpoints.

Observação: esse guia do usuário utilizou as configurações de conversão padrão.

Resultados da conversão

Após a conclusão do processo de migração, o recurso SMA-Checkpoints deverá ter criado dois novos arquivos de inventário e adicionado um arquivo checkpoints.json às pastas de entrada e saída.

Consulte os inventários relacionados ao SMA-Checkpoints para revisar os inventários relacionados.

Pasta de entrada

Pasta de entrada

Conteúdo do arquivo 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

Pasta de saída

Pasta de saída

Conteúdo do arquivo 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

Assim que o fluxo de execução do SMA for concluído e as pastas de entrada e saída contiverem os respectivos arquivos checkpoints.json, tudo estará pronto para você iniciar o processo de execução do Snowpark-Checkpoints.