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 .
Gerenciamento de biblioteca na configuração do espaço de trabalho
Importante
O gerenciamento de bibliotecas na configuração do espaço de trabalho não é mais suportado. Para migrar bibliotecas de espaço de trabalho e propriedades do Spark para um ambiente padrão, consulte Migrar as bibliotecas de espaço de trabalho e as propriedades do Spark.
Resumo das práticas recomendadas de gerenciamento de bibliotecas
Os cenários a seguir descrevem as práticas recomendadas.
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
Os blocos de anotações e as definições de trabalho do Spark no espaço de trabalho 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ê quiser manter as especificações da biblioteca, instale as bibliotecas em um ambiente e anexe-as aos itens de código.
Um benefício dessa abordagem é que ela economiza esforço de execução do código que requer bibliotecas comuns o tempo todo. Uma vez instaladas com êxito no ambiente, as bibliotecas são eficazes em todas as sessões do Spark se o ambiente estiver anexado.
Outro benefício é que a abordagem suporta granularidade de configuração de biblioteca inferior ao nível do espaço de trabalho. Um ambiente pode ser anexado a vários artefatos de código. Se você tiver um subconjunto de blocos de anotações ou definições de trabalho do Spark em um espaço de trabalho que exija as mesmas bibliotecas, anexe-os ao mesmo ambiente. Um administrador, membro ou colaborador do espaço de trabalho pode criar, editar e anexar o ambiente.
Cenário 3: Instalação em linha em execução interativa
Se você estiver interessado no uso único, dentro de um bloco de anotações interativo, de uma biblioteca que não está instalada, a instalação em linha é a opção mais conveniente. Os comandos embutidos no Fabric permitem que você tenha a biblioteca efetiva na sessão atual do Spark do bloco de anotações. A biblioteca não persiste em diferentes sessões.
Os usuários que têm permissão para executar o bloco de anotações podem instalar outras bibliotecas na sessão do Spark.
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 | Suportado |
Frasco | Suportado como biblioteca personalizada | Não suportado |
Importante
Atualmente, há limitações na biblioteca .jar .
- Para usuários do Scala, o arquivo .jar pode ser instalado com êxito em um ambiente, mas não é eficaz para suas sessões do Spark/Scala. A instalação substitui a biblioteca interna por uma biblioteca diferente. O novo .jar funciona nas sessões.
- Para usuários do Python, todos os arquivos .jar não são suportados atualmente em um ambiente. Eles podem ser instalados com sucesso em um ambiente, mas não são eficazes em sessões do PySpark.
- Em vez disso, você pode instalar os arquivos .jar no nível da sessão do bloco de anotações.
Instalação em linha
Os comandos em linha suportam bibliotecas Python e bibliotecas R.
Instalação em linha do Python
O interpretador Python reinicia 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 File da lakehouse anexada ao seu bloco de anotações. Vá para a sua casa do lago, selecione o ícone ... na pasta Arquivo e carregue a biblioteca personalizada.
Após o carregamento, use o seguinte comando para instalar a biblioteca personalizada na sessão do bloco de anotações.
# install the .whl through pip command
%pip install /lakehouse/default/Files/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.
Conteúdos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários