Snowpark Migration Accelerator: Implantação do código de saída

Para executar o código de saída gerado pelo Snowpark Migration Accelerator (SMA), siga estas recomendações específicas de ambiente com base em sua plataforma de origem.

Spark Scala

Antes de executar o código do Apache Spark migrado no Snowpark, leia estas considerações importantes:

Adicione referências de biblioteca Snowpark e das extensões do Snowpark

O projeto migrado deve incluir referências à biblioteca Snowpark e às suas extensões.

Extensões do Snowpark

O Snowpark Extensions é uma biblioteca que adiciona recursos do Apache Spark à biblioteca Snowpark padrão. No momento, esses recursos não estão disponíveis no Snowpark. Essa biblioteca ajuda os desenvolvedores a migrar seus projetos do Apache Spark para o Snowpark com mais facilidade.

Siga estas etapas para fazer referência às bibliotecas Snowpark e Snowpark Extensions no código migrado:

  1. Adicione a referência da biblioteca Snowpark ao seu projeto

  2. Adicione a referência da biblioteca Snowpark Extensions ao seu projeto

  3. Atualize seu código para usar essas bibliotecas

Etapa 1 - Adicione referências de biblioteca Snowpark e das extensões do Snowpark ao arquivo de configuração do projeto

A ferramenta adiciona automaticamente essas dependências ao arquivo de configuração do projeto. Depois que as dependências forem adicionadas, sua ferramenta de compilação se encarregará de resolvê-las.

Com base na extensão do arquivo de configuração do projeto, a ferramenta adiciona automaticamente as referências apropriadas da seguinte forma:

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>

Etapa 2 - Adicione instruções de importação da biblioteca de extensões do Snowpark

A ferramenta adiciona automaticamente essas duas instruções de importação a cada arquivo .scala gerado.

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

Exemplo de código

O código abaixo usa as funções hex e isin, que são nativas do Spark, mas não do Snowpark. No entanto, o código ainda será executado com êxito porque essas funções são fornecidas pelas extensões do Snowpark.

Código de entrada

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:_*);
   }

}

Código de saída

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

Antes de executar o código PySpark migrado no Snowpark, leia estas considerações importantes:

Instale as bibliotecas Snowpark e das extensões do Snowpark

O projeto migrado deve incluir referências à biblioteca Snowpark e às suas extensões.

Extensões do Snowpark

O Snowpark Extensions é uma biblioteca que adiciona recursos semelhantes ao PySparkà biblioteca padrão do Snowpark. No momento, esses recursos não estão disponíveis no Snowpark. Essa biblioteca ajuda os desenvolvedores a migrar seus projetos do PySpark para o Snowpark com mais facilidade.

Siga estas etapas para fazer referência às bibliotecas Snowpark e Snowpark Extensions no código migrado:

  1. Adicione referências da biblioteca Snowpark ao seu código migrado

  2. Inclua referências de biblioteca Snowpark Extensions quando necessário

Etapa 1 - Instale a biblioteca Snowpark

pip install snowpark-extensions

Etapa 2 - Instale a biblioteca de extensões do Snowpark

pip install snowflake-snowpark-python

Etapa 3 - Adicione instruções de importação da biblioteca de extensões do Snowpark

A ferramenta adiciona automaticamente a instrução de importação PySpark a todos os arquivos que exigem a funcionalidade PySpark.

import snowpark_extensions

Exemplo de código

The create_map function is not available in PySpark but is supported in Snowpark through its extensions. This means your code will work correctly in Snowpark without any modifications.

Código de entrada

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

Código de saída

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