Exemplos Snowpark Submit¶
Este tópico inclui exemplos que usam Snowpark Submit para enviar aplicativos Spark prontos para produção.
Escrever e enviar um aplicativo Spark simples¶
O exemplo a seguir mostra como escrever e enviar um aplicativo Spark simples sem dependências.
Em seu IDE local, crie um novo arquivo Python chamado
app.pycom o seguinte conteúdo:Para enviar o aplicativo, use o seguinte comando:
Você pode usar a opção
--wait-for-completionpara aguardar a conclusão da tarefa,--workload-statuspara verificar o status da tarefa e--display-logspara exibir os logs da tarefa. Para obter uma lista completa de opções, consulte Referência de Snowpark Submit.
Como implementar um aplicativo de um estágio do Snowflake¶
Se o aplicativo tiver dependências, como arquivos que ele precisa ler, você pode implantá-las a partir de uma área de preparação do Snowflake. O exemplo a seguir mostra como implantar um aplicativo e as dependências dele a partir de uma área de preparação do Snowflake.
Para carregar arquivos para uma área de preparação a partir do terminal, você pode usar o Snowflake CLI. Observe que o SnowSQL é a CLI legada e, se você já o estiver usando, também poderá usá-lo para carregar arquivos para uma área de preparação. Se você ainda não instalou o Snowflake CLI, pode instalá-lo seguindo as instruções em Instalação do Snowflake CLI.
Crie um novo arquivo CSV em seu IDE local chamado
sample_employees.csvcom o seguinte conteúdo:Carregue os seus arquivos de dependência para uma área de preparação usando o seguinte comando, em que
my_stageé o nome de uma área de preparação em sua conta. (Se você não tiver uma área de preparação criada, poderá usar [snow stage create](/developer-guide/snowflake-cli/command-reference/stage-commands/create).)Para verificar se o arquivo foi carregado com sucesso, use o seguinte comando para listar os arquivos na área de preparação:
Você deverá ver o arquivo
sample_employees.csvna lista.Em seu IDE local, crie um novo arquivo Python chamado
app.pycom o seguinte conteúdo:Para enviar o aplicativo que usa os arquivos que você carregou para a área de preparação, use o seguinte comando:
Observe que um pool de computação é necessário para executar o aplicativo e deve ser especificado no arquivo
connections.tomlou na linha de comando usando a opção--compute-pool. Para obter mais informações, consulte Referência de Snowpark Submit.
Monitoramento com espera e logs¶
O exemplo a seguir mostra como enviar um trabalho, aguardar sua conclusão e depois recuperar os logs.
Envie o trabalho e aguarde a conclusão usando o seguinte comando:
Se o trabalho falhar, verifique os logs detalhados usando o seguinte comando:
Usar o Snowpark Submit em um Apache Airflow DAG¶
Você pode enviar um trabalho do Spark ao Snowflake via Snowpark Connect for Spark. Você pode usar o :comando:`snowpark-submit` no modo de cluster para aproveitar um pool de computação e executar o trabalho.
Ao usar o Apache Airflow dessa forma, certifique-se de que o serviço Docker ou o contêiner do Snowpark Container Services que executa o Apache Airflow tenha acesso adequado ao Snowflake e aos arquivos necessários no estágio do Snowflake.
O código no exemplo a seguir executa as seguintes tarefas:
Cria um ambiente virtual Python em
/tmp/myenv.Na tarefa
create_venv, o código usapippara instalar o pacotesnowpark-submitusando um arquivo.whl.Gera um arquivo
connections.tomlseguro com credenciais de conexão do Snowflake e um token OAuth.Na tarefa
create_connections_toml, o código cria o diretório/app/.snowflake, cria o arquivo.tomle depois altera as permissões do arquivo para permitir que somente o proprietário (usuário) tenha acesso de leitura e gravação.Executa um trabalho Spark usando o comando:
snowpark-submitcomando.Na tarefa
run_snowpark_script, o código faz o seguinte:Ativa o ambiente virtual.
Executa o trabalho Spark usando o comando:
snowpark-submitcomando.Implanta no Snowflake usando o modo de cluster.
Usa a Snowpark Connect for Spark remoto URI s://localhost:15002.
Especifica a classe do aplicativo Spark
org.example.SnowparkConnectApp.Extrai o script do estágio @snowflake_stage.
Bloqueia a implantação até que o trabalho termine usando
--wait-for-completion.
Você pode monitorar o DAG usando a exibição em gráfico ou a exibição em árvore da interface do usuário do Apache Airflow. Inspecione os logs de tarefas para os seguintes itens:
Configuração do ambiente
Status de Snowpark Connect for Spark
:comando:`snowpark-submit` saída do trabalho
Você também pode monitorar os trabalhos executados no Snowflake por meio dos logs armazenados no estágio Snowflake ou das tabelas de eventos.