Partilhar via


Gerenciar bibliotecas para pools do Apache Spark no Azure Synapse Analytics

Depois de identificar os pacotes Scala, Java, R (Preview) ou Python que você gostaria de usar ou atualizar para seu aplicativo Spark, você pode instalá-los ou removê-los de um pool do Spark. As bibliotecas no nível do pool estão disponíveis para todos os blocos de anotações e trabalhos em execução no pool.

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

  • Instale uma biblioteca de espaço de trabalho que foi carregada como um pacote de espaço de trabalho.
  • Para atualizar bibliotecas Python, forneça um arquivo de especificação de ambiente environment.yml requirements.txt ou Conda 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 estiver concluído, novos trabalhos do Spark ou sessões de bloco de anotações usarão as bibliotecas de pool atualizadas.

Importante

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

Gerenciar pacotes do Synapse Studio ou do 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 Google Analytics, selecione a guia Apache Spark pools e selecione um pool Spark na lista.

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

    Captura de tela que destaca o botão do arquivo de configuração do ambiente de carregamento.

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

  5. Você também pode selecionar pacotes de espaço de trabalho adicionais para adicionar arquivos Jar, Wheel ou Tar.gz ao seu pool.

  6. Você também pode remover pacotes preteridos da seção Pacotes de espaço de trabalho e, em seguida, seu pool não anexa mais esses pacotes.

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

  8. Depois que o trabalho for concluído com êxito, todas as novas sessões receberão as bibliotecas de pool atualizadas.

Importante

Ao selecionar a opção Forçar novas configurações, você encerra todas as sessões atuais do pool do Spark selecionado. Uma vez terminadas as sessões, você deve aguardar a reinicialização do pool.

Se essa configuração estiver desmarcada, você precisará aguardar até que a sessão atual do Spark termine ou a interrompa manualmente. Depois que a sessão terminar, você precisa deixar o pool reiniciar.

Controlar o progresso da instalação

Um trabalho do Spark reservado pelo sistema é iniciado sempre que um pool é atualizado com um novo conjunto de bibliotecas. Esta tarefa do Spark ajuda a monitorizar o estado de instalação da biblioteca. Se a instalação falhar devido a conflitos de biblioteca ou outros problemas, o pool do Spark será revertido para seu estado anterior ou padrão.

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

Para ver estes registos:

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

  2. Selecione a tarefa de aplicação do Spark do sistema que corresponde à sua atualização do conjunto. Estas tarefas do sistema são executadas com o título SystemReservedJob-LibraryManagement.

    Captura de ecrã que realça a tarefa da biblioteca reservada pelo sistema.

  3. Mude para ver os registos de controlador e stdout.

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

    Captura de ecrã que realça os resultados da tarefa da biblioteca reservada pelo sistema.

Formatos de especificação de ambiente

PIP requirements.txt

Um arquivo requirements.txt (saída do pip freeze comando) pode ser usado para atualizar o ambiente. Quando um pool é atualizado, os pacotes listados neste arquivo são baixados do PyPI. As dependências 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. Este arquivo segue o formato descrito na documentação de referência de congelamento de pip.

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 padrão Conda, 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 dependências Conda/PyPI.

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

Para obter detalhes sobre como criar um ambiente a partir desse arquivo environment.yml , consulte Ativando um ambiente.