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'
    ...
}
Copy

build.sbt

...
libraryDependencies += "com.snowflake" % "snowpark" % "1.6.2"
libraryDependencies += "net.mobilize.snowpark-extensions" % "snowparkextensions" % "0.0.9"
...
Copy

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

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._
Copy

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

}
Copy

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

   }

}
Copy

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
Copy

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

pip install snowflake-snowpark-python
Copy

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
Copy

Exemplo de código

A função create_map não está disponível em PySpark, mas é compatível com o Snowpark por meio de suas extensões. Isso significa que seu código funcionará corretamente no Snowpark sem nenhuma modificação.

Código de entrada

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

Código de saída

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