Compartilhar via


Gerenciar bibliotecas de pools do Apache Spark no Azure Synapse Analytics

Depois de identificar os pacotes Scala, Java, R (Versão prévia) ou Python que você gostaria de usar ou atualizar para seu aplicativo Spark, é possível instalá-los ou removê-los de um Pool do Spark. As bibliotecas de nível de pool estão disponíveis para todos os notebooks e trabalhos em execução no pool.

Há duas maneiras principais de instalar uma biblioteca em um pool do Spark:

  • Instalar uma biblioteca de espaço de trabalho que tenha sido carregada como um pacote de espaço de trabalho.
  • Para atualizar as bibliotecas Python, forneça um arquivo de especificação de ambiente requirements.txt ou Conda environment.yml para instalar pacotes de repositórios como PyPI ou Conda-Forge. Para obter mais informações, consulte a seção Formatos de especificação de ambiente.

Depois que as alterações são salvas, um trabalho do Spark executa a instalação e armazena em cache o ambiente resultante para reutilização posterior. Quando o trabalho for concluído, novos trabalhos do Spark ou sessões de notebook usam as bibliotecas de pools atualizadas.

Importante

  • Se o pacote que você está instalando for grande ou levar muito para ser instalado, o tempo de inicialização da instância do Spark será afetado.
  • Não há suporte para a alteração da versão do PySpark, Python, Scala/Java, .NET, R ou Spark.
  • A instalação de pacotes de repositórios externos, como PyPI, Conda-Forge ou canais padrão do Conda, não é compatível com espaços de trabalho habilitados para proteção contra exfiltração dos dados.

Gerenciar pacotes no Synapse Studio ou no portal do Azure

As bibliotecas do Pool do Spark podem ser gerenciadas no Synapse Studio ou no portal do Azure.

  1. No portal do Azure, navegue até seu espaço de trabalho do Azure Synapse Analytics.

  2. Na seção Pools do Analytics, selecione a guia Pools do Apache Spark e selecione um Pool do Spark na lista.

  3. Selecione os pacotes na seção Configurações do pool do Spark.

    Captura de tela que realça o botão carregar arquivo de configuração do ambiente.

  4. Para bibliotecas de feeds Python, carregue o arquivo de configuração do ambiente usando o seletor de arquivos na seção Pacotes da página.

  5. Também é possível selecionar pacotes de workspace adicionais para incluir arquivos Jar, Wheel ou Tar.gz no pool.

  6. Você também pode remover pacotes preteridos da seção Pacotes do espaço de trabalho para que seu pool não anexe mais esses pacotes.

  7. Depois de salvar suas alterações, um trabalho do sistema é acionado para instalar e armazenar em cache as bibliotecas especificadas. Esse processo ajuda a reduzir o tempo de inicialização geral da sessão.

  8. Após a conclusão bem-sucedida do trabalho, todas as novas sessões pegarão as bibliotecas do pool atualizadas.

Importante

Ao selecionar a opção Forçar novas configurações, você encerrará todas as sessões atuais do Pool do Spark selecionado. Depois que as sessões forem encerradas, você deverá aguardar a reinicialização do pool.

Se essa configuração estiver desmarcada, você precisará aguardar o término da sessão atual do Spark ou interrompê-la manualmente. Após o término da sessão, você precisa deixar o pool reiniciar.

Acompanhar o progresso da instalação

Um trabalho do Spark reservado pelo sistema é iniciado cada vez que um pool é atualizado com um novo conjunto de bibliotecas. Esse trabalho do Spark ajuda a monitorar o status da instalação da biblioteca. Se a instalação falhar devido a conflitos de biblioteca ou outros problemas, o Pool do Spark é revertido ao seu estado anterior ou padrão.

Além disso, os usuários podem inspecionar os logs de instalação para identificar conflitos de dependências ou ver quais bibliotecas foram instaladas durante a atualização do pool.

Para exibir esses logs:

  1. No Synapse Studio, navegue até a lista de aplicativos Spark na guia Monitorar.

  2. Selecione o trabalho do aplicativo Spark do sistema que corresponde à sua atualização de pool. Esses trabalhos do sistema são executados sob o título SystemReservedJob-LibraryManagement.

    Captura de tela destacando o trabalho reservado da biblioteca do sistema.

  3. Alterne para exibir os logs de Driver e stdout.

  4. Os resultados contêm os logs relacionados à instalação de suas dependências.

    Captura de tela que realça os resultados do trabalho da biblioteca reservada do sistema.

Formatos de especificação de ambiente

PIP requirements.txt

Um arquivorequirements.txt (saída do pip freeze comando) pode ser usado para atualizar o ambiente. Quando um pool é atualizado, os pacotes listados nesse arquivo são baixados do PyPI. As dependencias completas são então armazenadas em cache e salvas para reutilização posterior do pool.

O trecho a seguir mostra o formato do arquivo de requisitos. O nome do pacote PyPI é listado junto com uma versão exata. Esse arquivo segue o formato descrito na documentação de referência do pip freeze.

Este exemplo fixa uma versão específica.

absl-py==0.7.0
adal==1.2.1
alabaster==0.7.10

Formato YML

Além disso, você pode fornecer um arquivo environment. yml para atualizar o ambiente do pool. Os pacotes listados neste arquivo são baixados dos canais de Conda padrão, Conda-Forge e PyPI. Você pode especificar outros canais ou remover os canais padrão usando as opções de configuração.

Este exemplo especifica os canais e as dependencias de Conda/PyPI.

name: stats2
channels:
- defaults
dependencies:
- bokeh
- numpy
- pip:
  - matplotlib
  - koalas==1.7.0

Para obter detalhes sobre a criação de um ambiente a partir desse arquivo environment.yml, consulte Ativação de um ambiente.