Partilhar via


Bibliotecas

Para disponibilizar códigos personalizados ou de terceiros para blocos de notas e tarefas em execução nos seus clusters, pode instalar uma biblioteca. As bibliotecas podem ser escritas em Python, Java, Scala e R. Você pode carregar bibliotecas Python, Java e Scala e apontar para pacotes externos nos repositórios PyPI, Maven e RAN.

O Azure Databricks inclui várias bibliotecas comuns no Databricks Runtime. Para ver que bibliotecas estão incluídas no Databricks Runtime, consulte a subsecção Ambiente do Sistema das notas de versão do Databricks Runtime da sua versão do Databricks Runtime.

Nota

O Suporte da Microsoft ajuda a isolar e resolver problemas relacionados com bibliotecas instaladas e mantidas pelo Azure Databricks. Para componentes de terceiros, incluindo bibliotecas, a Microsoft fornece suporte comercial razoável para o ajudar a resolver problemas. O Suporte da Microsoft auxilia numa base de melhor esforço e consegue resolver o problema. Para conectores open source e projetos alojados no GitHub, é recomendável que comunique os problemas no GitHub e os acompanhe. Os esforços de desenvolvimento, como os JARs de sombreado ou a criação de bibliotecas Python, não são suportados através do processo de submissão de casos de suporte standard: exigem um compromisso de consultoria para uma resolução mais rápida. O suporte pode pedir-lhe para envolver outros canais de tecnologias open-source, onde pode encontrar conhecimentos profundos dessa tecnologia. Existem vários sites de comunidades. Dois exemplos são a página do Microsoft Q&A para o Azure Databricks e o Stack Overflow.

Bibliotecas com escopo de cluster

Você pode instalar bibliotecas em clusters para que elas possam ser usadas por todos os blocos de anotações e trabalhos em execução no cluster. O Databricks suporta bibliotecas Python, JAR e R. Veja Bibliotecas de cluster.

Você pode instalar uma biblioteca de cluster diretamente das seguintes fontes:

Nem todos os locais são suportados para todos os tipos de bibliotecas ou todas as configurações de computação. Consulte Recomendações para carregar bibliotecas para obter recomendações de configuração.

Importante

As bibliotecas podem ser instaladas a partir do DBFS ao usar o Databricks Runtime 14.3 LTS e inferior. No entanto, qualquer usuário do espaço de trabalho pode modificar arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas em um espaço de trabalho do Azure Databricks, o armazenamento de arquivos de biblioteca na raiz DBFS é preterido e desabilitado por padrão no Databricks Runtime 15.1 e superior. Consulte O armazenamento de bibliotecas na raiz DBFS foi preterido e desativado por padrão.

Em vez disso, o Databricks recomenda carregar todas as bibliotecas, incluindo bibliotecas Python, arquivos JAR e conectores Spark, para arquivos de espaço de trabalho ou volumes do Catálogo Unity, ou usar repositórios de pacotes de biblioteca. Se sua carga de trabalho não oferecer suporte a esses padrões, você também poderá usar bibliotecas armazenadas no armazenamento de objetos na nuvem.

Para obter informações completas sobre o suporte à biblioteca, consulte Suporte à biblioteca Python, Suporte à biblioteca Java e Scala e Suporte à biblioteca R.

Recomendações para carregar bibliotecas

O Databricks suporta a maioria das instalações de configuração de bibliotecas Python, JAR e R, mas há alguns cenários sem suporte. É recomendável que você carregue bibliotecas para locais de origem que suportem a instalação no modo de computação com acesso compartilhado, pois esse é o modo recomendado para todas as cargas de trabalho. Consulte Modos de acesso. Ao agendar trabalhos com o modo de acesso compartilhado, execute o trabalho com uma entidade de serviço.

Importante

Use a computação apenas com o modo de acesso de usuário único se a funcionalidade necessária não for suportada pelo modo de acesso compartilhado. Nenhum modo de acesso compartilhado de isolamento é uma configuração herdada no Databricks que não é recomendada.

A tabela a seguir fornece recomendações organizadas pela versão do Databricks Runtime e pela ativação do Unity Catalog.

Configuração Recomendação
Databricks Runtime 13.3 LTS e superior com Unity Catalog Instale bibliotecas no modo de computação com acesso compartilhado a partir de volumes do Catálogo Unity com GRANT READ para todos os usuários da conta.

Se aplicável, as coordenadas Maven e os caminhos da biblioteca JAR precisam ser adicionados à lista de permissões.
Databricks Runtime 11.3 LTS e superior sem Unity Catalog Instale bibliotecas a partir de arquivos de espaço de trabalho. (O limite de tamanho do ficheiro é de 500 MB.)
Databricks Runtime 10.4 LTS e inferior Instale bibliotecas a partir do armazenamento de objetos na nuvem.

Suporte à biblioteca Python

A tabela a seguir indica a compatibilidade da versão do Databricks Runtime para arquivos de roda Python para diferentes modos de acesso ao cluster com base no local de origem da biblioteca. Consulte Notas de versão, versões e modos de compatibilidade e Access do Databricks Runtime.

No Databricks Runtime 15.0 e superior, você pode usar arquivos requirements.txt para gerenciar suas dependências do Python. Esses arquivos podem ser carregados para qualquer local de origem suportado.

Nota

A instalação de ficheiros Python egg só é suportada no Databricks Runtime 13.3 LTS e versões anteriores, e apenas para modos de acesso partilhado de utilizador único ou sem isolamento. Além disso, não é possível instalar arquivos Python egg em volumes ou arquivos de espaço de trabalho. Use arquivos de roda Python ou instale pacotes do PyPI em vez disso.

Modo de acesso compartilhado Modo de acesso de usuário único Sem modo de acesso compartilhado de isolamento (Legado)
PyPI 13.3 LTS e superior Todas as versões suportadas do Databricks Runtime Todas as versões suportadas do Databricks Runtime
Arquivos de espaço de trabalho 13.3 LTS e superior 13.3 LTS e superior 14.1 e superior
Volumes 13.3 LTS e superior 13.3 LTS e superior Não suportado
Armazenamento na nuvem 13.3 LTS e superior Todas as versões suportadas do Databricks Runtime Todas as versões suportadas do Databricks Runtime
DBFS (Não recomendado) Não suportado 14.3 e inferior 14.3 e inferior

Suporte a bibliotecas Java e Scala

A tabela a seguir indica a compatibilidade da versão do Databricks Runtime para arquivos JAR para diferentes modos de acesso ao cluster com base no local de origem da biblioteca. Consulte Notas de versão, versões e modos de compatibilidade e Access do Databricks Runtime.

Nota

O modo de acesso compartilhado requer que um administrador adicione coordenadas e caminhos Maven para bibliotecas JAR a um allowlistarquivo . Consulte Bibliotecas Allowlist e scripts init em computação compartilhada.

Modo de acesso compartilhado Modo de acesso de usuário único Sem modo de acesso compartilhado de isolamento (Legado)
Maven 13.3 LTS e superior Todas as versões suportadas do Databricks Runtime Todas as versões suportadas do Databricks Runtime
Arquivos de espaço de trabalho Não suportado Não suportado 14.1 e superior
Volumes 13.3 LTS e superior 13.3 LTS e superior Não suportado
Armazenamento na nuvem 13.3 LTS e superior Todas as versões suportadas do Databricks Runtime Todas as versões suportadas do Databricks Runtime
DBFS (Não recomendado) Não suportado 14.3 e inferior 14.3 e inferior

Suporte à biblioteca R

A tabela a seguir indica a compatibilidade da versão do Databricks Runtime para pacotes CRAN para diferentes modos de acesso ao cluster. Consulte Notas de versão, versões e modos de compatibilidade e Access do Databricks Runtime.

Modo de acesso compartilhado Modo de acesso de usuário único Sem modo de acesso compartilhado de isolamento (Legado)
CRAN Não suportado Todas as versões suportadas do Databricks Runtime Todas as versões suportadas do Databricks Runtime

Bibliotecas com âmbito de bloco de notas

As bibliotecas com escopo de notebook, disponíveis para Python e R, permitem instalar bibliotecas e criar um ambiente com escopo para uma sessão de notebook. Essas bibliotecas não afetam outros blocos de anotações executados no mesmo cluster. As bibliotecas com escopo de bloco de anotações não persistem e devem ser reinstaladas para cada sessão. Use bibliotecas com escopo de bloco de anotações quando precisar de um ambiente personalizado para um bloco de anotações específico.

Nota

Os JARs não podem ser instalados no nível do notebook.

Importante

As bibliotecas de espaço de trabalho foram preteridas e não devem ser usadas. Consulte Bibliotecas de espaço de trabalho (legado). No entanto, o armazenamento de bibliotecas como arquivos de espaço de trabalho é distinto das bibliotecas de espaço de trabalho e ainda é totalmente suportado. Você pode instalar bibliotecas armazenadas como arquivos de espaço de trabalho diretamente para tarefas de computação ou trabalho.

Gerenciamento de ambiente Python

A tabela seguinte fornece uma descrição geral das opções que pode utilizar para instalar bibliotecas Python no Azure Databricks.

Nota

  • Os contêineres personalizados que usam um ambiente baseado em conda não são compatíveis com bibliotecas com escopo de notebook e com bibliotecas de cluster no Databricks Runtime 10.4 LTS e superior. Em vez disso, o Azure Databricks recomenda instalar as bibliotecas diretamente na imagem ou utilizar scripts init. Para continuar a utilizar bibliotecas de cluster nestes cenários, pode definir a Configuração do Sparkspark.databricks.driverNfs.clusterWidePythonLibsEnabled como false. O suporte para a configuração do Spark será removido em ou após 31 de dezembro de 2021.
Origem do pacote Python Bibliotecas com âmbito de bloco de notas com %pip Bibliotecas com escopo de bloco de anotações com arquivo YAML do ambiente base Bibliotecas de cluster Bibliotecas de tarefas com a API de trabalhos
PyPI %pip installUtilize. Veja o exemplo. Adicione um nome de pacote PyPI a um arquivo YAML do ambiente base. Veja o exemplo. Selecione PyPI como a fonte. Adicione um novo objeto pypi às bibliotecas de trabalhos e especifique o campo package.
Espelho PyPI privado, como Nexus ou Artifactory Utilize %pip install com a opção --index-url. A gestão de segredos está disponível. Veja o exemplo. Adicione o -–index-url a um arquivo YAML do ambiente base. A gestão de segredos está disponível. Veja o exemplo. Não suportado. Não suportado.
VCS, como o GitHub, com origem não processada Utilize %pip install e especifique o URL do repositório como nome do pacote. Veja o exemplo. Adicione uma URL de repositório como um nome de pacote a um arquivo YAML do ambiente base. Veja o exemplo. Selecione PyPI como a origem e especifique a URL do repositório como o nome do pacote. Adicione um novo objeto pypi às bibliotecas de trabalhos e especifique o URL do repositório como campo package.
VCS privado com origem não processada Utilize %pip install e especifique o URL do repositório com autenticação básica como nome do pacote. A gestão de segredos está disponível. Veja o exemplo. Adicione um repositório com autenticação básica como o nome do pacote a um arquivo YAML do ambiente base. Veja o exemplo. Não suportado. Não suportado.
Caminho do ficheiro %pip installUtilize. Veja o exemplo. Adicione um caminho de arquivo como um nome de pacote a um arquivo YAML do ambiente base. Veja o exemplo. Selecione Caminho do arquivo/ADLS como origem. Adicione um novo egg ou whl objeto às bibliotecas de tarefas e especifique o caminho do arquivo como o package campo.
Azure Data Lake Storage Gen2 Use %pip install junto com uma URL pré-assinada. Não há suporte para caminhos com o protocolo abfss:// Azure Data Lake Storage Gen2. Adicione uma URL pré-assinada como um nome de pacote a um arquivo YAML do ambiente base. Não há suporte para caminhos com o protocolo abfss:// Azure Data Lake Storage Gen2. Selecione Caminho do arquivo/ADLS como origem. Adicione um novo egg ou whl objeto às bibliotecas de tarefas e especifique o caminho do Azure Data Lake Storage Gen2 como o package campo.

Precedência da biblioteca Python

Você pode encontrar uma situação em que precise substituir a versão de uma biblioteca interna ou ter uma biblioteca personalizada que entre em conflito no nome com outra biblioteca instalada no cluster. Quando você executa import <library>o , a biblioteca com a alta precedência é importada.

Importante

As bibliotecas armazenadas em arquivos de espaço de trabalho têm precedência diferente, dependendo de como são adicionadas ao Python sys.path. Uma pasta Databricks Git adiciona o diretório de trabalho atual ao caminho antes de todas as outras bibliotecas, enquanto blocos de anotações fora das pastas Git adicionam o diretório de trabalho atual depois que outras bibliotecas são instaladas. Se você anexar manualmente diretórios de espaço de trabalho ao seu caminho, eles sempre terão a menor precedência.

A lista a seguir ordena a precedência do mais alto para o mais baixo. Nesta lista, um número menor significa maior precedência.

  1. Bibliotecas no diretório de trabalho atual (somente pastas Git).
  2. Bibliotecas no diretório raiz da pasta Git (somente pastas Git).
  3. Bibliotecas com escopo de bloco de anotações (%pip install em blocos de anotações).
  4. Bibliotecas de cluster (usando a interface do usuário, CLI ou API).
  5. Bibliotecas incluídas no Databricks Runtime.
    • As bibliotecas instaladas com scripts init podem ser resolvidas antes ou depois das bibliotecas internas, dependendo de como são instaladas. O Databricks não recomenda a instalação de bibliotecas com scripts init.
  6. Bibliotecas no diretório de trabalho atual (não em pastas Git).
  7. Arquivos de espaço de trabalho anexados ao sys.patharquivo .