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:
Adicione a referência da biblioteca Snowpark ao seu projeto
Adicione a referência da biblioteca Snowpark Extensions ao seu projeto
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:
Adicione referências da biblioteca Snowpark ao seu código migrado
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¶
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()
Código de saída¶
import snowpark_extensions
import snowflake.snowpark.functions as df
df.select(create_map('name', 'age').alias("map")).collect()