Executar códigos do Spark

Concluído

Para editar e executar códigos do Spark no Microsoft Fabric, é possível usar notebooks ou definir um trabalho do Spark.

Notebooks

Quando você quiser usar o Spark para explorar e analisar dados interativamente, use um notebook. Os notebooks permitem combinar texto, imagens e código escritos em vários idiomas para criar um item interativo que você pode compartilhar com outras pessoas e no qual você pode colaborar.

Captura de tela de um notebook no Microsoft Fabric.

Os notebooks consistem em uma ou mais células, e cada uma delas pode conter conteúdos formatados por markdown ou códigos executáveis. É possível executar o código interativamente no notebook e ver os resultados imediatamente.

Células de código e markdown

As células de notebook contêm código ou texto Markdown, mas não amboss. Para converter uma célula de código existente em Markdown, selecione M. Para converter uma célula Markdown em código, selecione </>.

As células Markdown incluem uma barra de ferramentas de texto para permitir que você formate texto e adicione imagens. A capacidade de adicionar células Markdown a um notebook é poderosa. Ela permite que você adicione explicações sobre o seu código, documente por que certas coisas estão sendo feitas e o que você está tentando alcançar e por quê. Este recurso não só torna um notebook mais útil posteriormente, como também melhora a colaboração.

Linguagens de código

O PySpark (uma implementação específica do Spark do Python) é a linguagem padrão para notebooks do Microsoft Fabric, mas você também pode selecionar Scala (uma linguagem interpretada baseada em Java), Spark SQL ou SparkR. A maioria das cargas de trabalho de análise e engenharia de dados é realizada usando uma combinação de PySpark e Spark SQL.

Você pode alterar o idioma padrão de um notebook (afetando todas as células de código) ou pode usar um comando magic em uma célula para substituir o idioma padrão apenas para essa célula. Por exemplo, o comando magic %%sql no código a seguir altera a linguagem de programação da célula para Spark SQL:

%%sql
SELECT YEAR(OrderDate) AS OrderYear,
       SUM((UnitPrice * Quantity) + Tax) AS GrossRevenue
FROM salesorders
GROUP BY YEAR(OrderDate)
ORDER BY OrderYear;

Use %%pyspark para alterar a linguagem de programação de volta para PySpark. Ou %%spark para alterar a linguagem de programação para Scala. O menu suspenso no canto inferior direito da célula também pode ser usado para adicionar um comando magic.

Observação

Comandos magic diferenciam maiúsculas de minúsculas.

O código no notebook geralmente é executado interativamente, executando células individuais ou executando todas as células no notebook. Você também pode agendar um notebook para ser executado de forma não interativa.

Definições de trabalho do Spark

Para usar o Spark a fim de ingerir e transformar dados como parte de um processo automatizado, defina um trabalho do Spark que execute um script sob demanda ou com base em um agendamento.

Captura de tela de uma definição de trabalho do Spark no Microsoft Fabric.

Para configurar um trabalho do Spark, crie uma definição de trabalho do Spark no workspace e especifique o script que ela deve executar. Também é possível especificar um arquivo de referência (por exemplo, um arquivo de código Python que contém definições de funções usadas no script) e uma referência a um lakehouse específico que contém dados que o script processa.

Você também pode especificar argumentos de linha de comando, que permitem variar o comportamento do script, dependendo dos argumentos passados para ele. Esta abordagem pode ser útil quando o mesmo trabalho do Spark será usado em vários contextos (por exemplo, você pode usar um único script para carregar dados de arquivos em tabelas, variando o caminho do arquivo e o nome da tabela ao executá-lo).

Agendar a execução do notebook do trabalho

Você pode definir um agendamento para um notebook ou uma definição de trabalho do Spark para que eles sejam executados sem vigilância em um intervalo específico. Esta abordagem pode ser útil para tarefas automatizadas simples que podem ser roteadas e que não fazem parte de uma carga de trabalho de processamento ou ingestão de dados mais complexa. Na maioria dos ambientes de produção, uma solução mais gerenciável é incluir o notebook ou a definição de trabalho do Spark em um pipeline, em que ele pode ser integrado a uma solução de orquestração mais complexa.

Observação

Quando você executa o código em um notebook ou uma definição de trabalho do Spark interativamente, o código é executado no contexto de segurança do usuário conectado no momento. Quando executado usando um agendamento, o código assume a identidade do usuário que criou o agendamento. Quando executado em um pipeline, o código usa a identidade do usuário que possui o pipeline.

Independentemente de como o código é executado, você deve garantir que a identidade usada no contexto de segurança tenha permissões suficientes para acessar todos os recursos referenciados pelo código, incluindo tabelas ou arquivos em um lakehouse.