Gerenciar bibliotecas do Apache Spark no Microsoft Fabric
Uma biblioteca é uma coleção de código pré-escrito que os desenvolvedores podem importar para fornecer funcionalidade. Usando bibliotecas, você pode economizar tempo e esforço ao não ter que escrever código do zero para executar tarefas comuns. Em vez disso, importe a biblioteca e use suas funções e classes para obter a funcionalidade desejada. O Microsoft Fabric fornece vários mecanismos para ajudá-lo a gerenciar e usar bibliotecas.
- Bibliotecas integradas: cada tempo de execução do Fabric Spark fornece um rico conjunto de bibliotecas populares pré-instaladas. Você pode encontrar a lista completa de bibliotecas internas no Fabric Spark Runtime.
- Bibliotecas públicas: As bibliotecas públicas são originárias de repositórios como PyPI e Conda, que atualmente são suportados.
- Bibliotecas personalizadas: bibliotecas personalizadas referem-se ao código que você ou sua organização criam. O Fabric oferece suporte a eles nos formatos .whl, .jar e .tar.gz . O Fabric suporta .tar.gz apenas para o idioma R. Para bibliotecas personalizadas do Python, use o formato .whl .
Resumo das práticas recomendadas de gerenciamento de bibliotecas
Os cenários a seguir descrevem as práticas recomendadas ao usar bibliotecas no Microsoft Fabric.
Cenário 1: O administrador define bibliotecas padrão para o espaço de trabalho
Para definir bibliotecas padrão, você precisa ser o administrador do espaço de trabalho. Como administrador, você pode executar estas tarefas:
- Criar um novo ambiente
- Instalar as bibliotecas necessárias no ambiente
- Anexar este ambiente como o espaço de trabalho padrão
Quando seus blocos de anotações e definições de trabalho do Spark são anexados às configurações do espaço de trabalho, eles iniciam sessões com as bibliotecas instaladas no ambiente padrão do espaço de trabalho.
Cenário 2: Persistir as especificações da biblioteca para um ou vários itens de código
Se você tiver bibliotecas comuns para diferentes itens de código e não precisar de atualizações frequentes, instalar as bibliotecas em um ambiente e anexá-las aos itens de código é uma boa escolha.
Levará algum tempo para que as bibliotecas em ambientes se tornem eficazes ao publicar. Normalmente leva de 5 a 15 minutos, dependendo da complexidade das bibliotecas. Durante esse processo, o sistema ajudará a resolver os conflitos potenciais e baixar as dependências necessárias.
Um benefício dessa abordagem é que as bibliotecas instaladas com êxito têm a garantia de estar disponíveis quando a sessão do Spark é iniciada com o ambiente conectado. Poupa esforços de manutenção de bibliotecas comuns para os seus projetos.
É altamente recomendado para cenários de pipeline com sua estabilidade.
Cenário 3: Instalação em linha em execução interativa
Se você estiver usando os blocos de anotações para escrever código interativamente, usar a instalação em linha para adicionar novas bibliotecas PyPI/conda adicionais ou validar suas bibliotecas personalizadas para uso único é a prática recomendada. Os comandos embutidos no Fabric permitem que você tenha a biblioteca efetiva na sessão atual do Spark do bloco de anotações. Ele permite a instalação rápida, mas a biblioteca instalada não persiste em diferentes sessões.
Como %pip install
gerar diferentes árvores de dependência de tempos em tempos, o que pode levar a conflitos de biblioteca, os comandos embutidos são desativados por padrão nas execuções de pipeline e NÃO são recomendados para serem usados em seus pipelines.
Resumo dos tipos de biblioteca suportados
Tipo de biblioteca | Gestão de bibliotecas de ambiente | Instalação em linha |
---|---|---|
Python Público (PyPI & Conda) | Suportado | Suportado |
Python Personalizado (.whl) | Suportado | Suportado |
R Público (CRAN) | Não suportado | Suportado |
R personalizado (.tar.gz) | Suportado como biblioteca personalizada | Suportado |
Frasco | Suportado como biblioteca personalizada | Suportado |
Instalação em linha
Os comandos embutidos suportam o gerenciamento de bibliotecas em cada sessão de bloco de anotações.
Instalação em linha do Python
O sistema reinicia o interpretador Python para aplicar a mudança de bibliotecas. Todas as variáveis definidas antes de executar a célula de comando são perdidas. É altamente recomendável que você coloque todos os comandos para adicionar, excluir ou atualizar pacotes Python no início do seu bloco de anotações.
Os comandos embutidos para gerenciar bibliotecas Python são desabilitados no pipeline de notebook executado por padrão. Se você quiser habilitar %pip install
para pipeline, adicione "_inlineInstallationEnabled" como parâmetro bool é igual a True nos parâmetros de atividade do bloco de anotações.
Nota
O %pip install
pode levar a resultados inconsistentes de tempos em tempos. Recomenda-se instalar a biblioteca em um ambiente e usá-la no pipeline.
Em execuções de referência de bloco de anotações, não há suporte para comandos embutidos para gerenciar bibliotecas Python. Para garantir a correção da execução, recomenda-se remover esses comandos embutidos do bloco de anotações referenciado.
Recomendamos %pip
em vez de !pip
. !pip
é um comando shell integrado IPython, que tem as seguintes limitações:
!pip
apenas instala um pacote no nó do driver, não nos nós do executor.- Os pacotes instalados por meio
!pip
não afetam os conflitos com os pacotes internos ou se os pacotes já foram importados em um bloco de anotações.
No entanto, %pip
lida com esses cenários. As bibliotecas instaladas através %pip
estão disponíveis nos nós de driver e executor e ainda são eficazes, mesmo que a biblioteca já esteja importada.
Gorjeta
O %conda install
comando geralmente leva mais tempo do que o %pip install
comando para instalar novas bibliotecas Python. Verifica todas as dependências e resolve conflitos.
Você pode querer usar %conda install
para mais confiabilidade e estabilidade. Você pode usar %pip install
se tiver certeza de que a biblioteca que deseja instalar não entra em conflito com as bibliotecas pré-instaladas no ambiente de tempo de execução.
Para obter todos os comandos e esclarecimentos em linha Python disponíveis, consulte %pip commands e %conda commands.
Gerencie bibliotecas públicas Python através da instalação em linha
Neste exemplo, veja como usar comandos embutidos para gerenciar bibliotecas. Suponha que você queira usar altair, uma poderosa biblioteca de visualização para Python, para uma exploração de dados única. Suponha que a biblioteca não esteja instalada no seu espaço de trabalho. O exemplo a seguir usa comandos conda para ilustrar as etapas.
Você pode usar comandos embutidos para habilitar o altair na sessão do bloco de anotações sem afetar outras sessões do bloco de anotações ou outros itens.
Execute os seguintes comandos em uma célula de código do bloco de anotações. O primeiro comando instala a biblioteca altair . Além disso, instale o vega_datasets, que contém um modelo semântico que você pode usar para visualizar.
%conda install altair # install latest version through conda command %conda install vega_datasets # install latest version through conda command
A saída da célula indica o resultado da instalação.
Importe o pacote e o modelo semântico executando o código a seguir em outra célula do bloco de anotações.
import altair as alt from vega_datasets import data
Agora você pode brincar com a biblioteca altair com escopo de sessão.
# load a simple dataset as a pandas DataFrame cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', ).interactive()
Gerencie bibliotecas personalizadas do Python através da instalação em linha
Você pode carregar suas bibliotecas personalizadas Python para a pasta de recursos do seu bloco de anotações ou para o ambiente anexado. As pastas de recursos são o sistema de arquivos interno fornecido por cada notebook e ambientes. Consulte Recursos do bloco de anotações para obter mais detalhes. Após o upload, você pode arrastar e soltar a biblioteca personalizada em uma célula de código, o comando embutido para instalar a biblioteca é gerado automaticamente. Ou você pode usar o seguinte comando para instalar.
# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"
Instalação em linha R
Para gerenciar bibliotecas R, o Fabric suporta os install.packages()
comandos , remove.packages()
e devtools::
. Para todos os comandos e esclarecimentos em linha R disponíveis, consulte o comando install.packages e o comando remove.package.
Gerencie bibliotecas públicas R através da instalação em linha
Siga este exemplo para percorrer as etapas de instalação de uma biblioteca pública R.
Para instalar uma biblioteca de feeds R:
Mude o idioma de trabalho para SparkR (R) no friso do bloco de notas.
Instale a biblioteca caesar executando o seguinte comando em uma célula do notebook.
install.packages("caesar")
Agora você pode brincar com a biblioteca de césar com escopo de sessão com um trabalho do Spark.
library(SparkR) sparkR.session() hello <- function(x) { library(caesar) caesar(x) } spark.lapply(c("hello world", "good morning", "good evening"), hello)
Gerencie bibliotecas Jar através da instalação em linha
Os arquivos .jar são suportados em sessões de bloco de anotações com o seguinte comando.
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
}
}
A célula de código está usando o armazenamento do Lakehouse como exemplo. No explorador do bloco de anotações, você pode copiar o caminho ABFS completo do arquivo e substituí-lo no código.