Compartilhar via


Databricks Runtime 6.0 com o Conda (sem suporte)

Observação

Esta versão não está mais disponível. Se você quer usar o Conda para gerenciar bibliotecas e ambientes do Python, use uma versão com suporte do Databricks Runtime para Machine Learning.

O Databricks Runtime 6.0 com o Conda permite que você aproveite o Conda para gerenciar bibliotecas e ambientes do Python. Esse runtime oferece duas opções de ambiente do Conda raiz na criação do cluster:

  • O ambiente Databricks Standard inclui versões atualizadas de vários pacotes populares do Python. Esse ambiente destina-se a substituir os notebooks existentes que são executados em Databricks Runtime. É o ambiente de runtime padrão baseado em Conda do Databricks.
  • O ambiente Databricks Minimal contém um número mínimo de pacotes necessários para a funcionalidade de notebooks do PySpark e Databricks Python. Esse ambiente é ideal para personalizar o runtime com vários pacotes do Python.

Ambos incluem suporte para o utilitário Databricks Library (dbutils.library) (legado).

Observação

As bibliotecas Scala, Java e R no Databricks Runtime 6.0 com o Conda são idênticas às do Databricks Runtime 6.0. Para obter detalhes, confira as notas sobre a versão do Databricks Runtime 6.0 (sem suporte). Para obter informações sobre como usar o Databricks Runtime com o Conda, confira Conda.

Novos recursos

Confira Novos recursos do Databricks Runtime 6.0.

Aprimoramentos

Confira Melhorias do Databricks Runtime 6.0.

Correção de bug

Corrigido o problema 9104 do Conda (a lista do Conda falha quando o arquivo “RECORD” tem entradas duplicadas).

Problemas conhecidos

  • Por padrão, todos os notebooks Python são executados em seu próprio ambiente Conda isolado. Esse ambiente isolado é clonado do ambiente raiz do Conda. Como essa clonagem é uma operação cara, em determinados casos você pode enfrentar os seguintes problemas:

    • Se o tipo de instância do cluster não tiver armazenamento local, a criação do cluster poderá falhar com um erro como:

      Could not start Spark. This can happen when installing incompatible libraries or when initialization scripts failed.
      databricks_error_message: Spark failed to start: Timed out after ... seconds
      
    • Anexar simultaneamente muitos notebooks Python a um único cluster (por exemplo, disparado por trabalhos agendados ou fluxos de trabalho do notebook) pode causar falha na anexação de alguns desses notebooks.

    Se você tiver algum dos problemas anteriores e não precisar executar notebooks Python em ambientes isolados (ou seja, o cluster não for compartilhado), poderá desabilitar a criação de um ambiente Python isolado para cada notebook Python definindo spark.databricks.libraryIsolation.enabled como false na configuração do Spark. A definição desse sinalizador também desabilita dbutils.library.

  • Se você atualizar o Conda instalado, a nova versão do Conda poderá não incluir a correção do problema 9104 do Conda (a lista do Conda falhará se o arquivo "RECORD" tiver entradas duplicadas). Se você atualizar o Conda e encontrar falhas ao anexar notebooks Python ou ao usar conda list com o erro TypeError: '<' not supported between instances of 'NoneType' and 'str' nos logs de driver ou em um notebook, use uma versão do Conda que tenha a correção ou evite atualizar o Conda instalado nesta versão.

Ambiente do sistema

O ambiente do sistema no Databricks Runtime 6.0 com Conda difere do Databricks Runtime 6.0 nestes pontos:

Há algumas diferenças nas bibliotecas Python instaladas.

Bibliotecas

A seguir está o arquivo exportado environment.yml para ambientes raiz padrão no Databricks Runtime 6.0 com Conda.

Databricks Standard

name: databricks-standard
channels:
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - asn1crypto=0.24.0=py37_0
  - backcall=0.1.0=py37_0
  - blas=1.0=openblas
  - boto=2.49.0=py37_0
  - boto3=1.9.162=py_0
  - botocore=1.12.163=py_0
  - ca-certificates=2019.1.23=0
  - certifi=2019.3.9=py37_0
  - cffi=1.12.2=py37h2e261b9_1
  - chardet=3.0.4=py37_1003
  - cryptography=2.6.1=py37h1ba5d50_0
  - cython=0.29.6=py37he6710b0_0
  - decorator=4.4.0=py37_1
  - docutils=0.14=py37_0
  - idna=2.8=py37_0
  - ipython=7.4.0=py37h39e3cac_0
  - ipython_genutils=0.2.0=py37_0
  - jedi=0.13.3=py37_0
  - jmespath=0.9.4=py_0
  - krb5=1.16.1=h173b8e3_7
  - libedit=3.1.20181209=hc058e9b_0
  - libffi=3.2.1=hd88cf55_4
  - libgcc-ng=8.2.0=hdf63c60_1
  - libgfortran-ng=7.3.0=hdf63c60_0
  - libopenblas=0.3.6=h5a2b251_1
  - libpq=11.2=h20c2e04_0
  - libstdcxx-ng=8.2.0=hdf63c60_1
  - ncurses=6.1=he6710b0_1
  - nomkl=3.0=0
  - numpy=1.16.2=py37h99e49ec_0
  - numpy-base=1.16.2=py37h2f8d375_0
  - openssl=1.1.1b=h7b6447c_1
  - pandas=0.24.2=py37he6710b0_0
  - parso=0.3.4=py37_0
  - patsy=0.5.1=py37_0
  - pexpect=4.6.0=py37_0
  - pickleshare=0.7.5=py37_0
  - pip=19.0.3=py37_0
  - prompt_toolkit=2.0.9=py37_0
  - psycopg2=2.7.6.1=py37h1ba5d50_0
  - ptyprocess=0.6.0=py37_0
  - pycparser=2.19=py37_0
  - pygments=2.3.1=py37_0
  - pyopenssl=19.0.0=py37_0
  - pysocks=1.6.8=py37_0
  - python=3.7.3=h0371630_0
  - python-dateutil=2.8.0=py37_0
  - pytz=2018.9=py37_0
  - readline=7.0=h7b6447c_5
  - requests=2.21.0=py37_0
  - s3transfer=0.2.1=py37_0
  - scikit-learn=0.20.3=py37h22eb022_0
  - scipy=1.2.1=py37he2b7bc3_0
  - setuptools=40.8.0=py37_0
  - six=1.12.0=py37_0
  - sqlite=3.27.2=h7b6447c_0
  - statsmodels=0.9.0=py37h035aef0_0
  - tk=8.6.8=hbc83047_0
  - traitlets=4.3.2=py37_0
  - urllib3=1.24.1=py37_0
  - wcwidth=0.1.7=py37_0
  - wheel=0.33.1=py37_0
  - xz=5.2.4=h14c3975_4
  - zlib=1.2.11=h7b6447c_3
  - pip:
    - cycler==0.10.0
    - kiwisolver==1.1.0
    - matplotlib==3.0.3
    - pyarrow==0.13.0
    - pyparsing==2.4.2
    - seaborn==0.9.0
prefix: /databricks/conda/envs/databricks-standard

Databricks Minimal

name: databricks-minimal
channels:
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - backcall=0.1.0=py37_0
  - blas=1.0=openblas
  - ca-certificates=2019.1.23=0
  - certifi=2019.3.9=py37_0
  - decorator=4.4.0=py37_1
  - ipython=7.4.0=py37h39e3cac_0
  - ipython_genutils=0.2.0=py37_0
  - jedi=0.13.3=py37_0
  - libedit=3.1.20181209=hc058e9b_0
  - libffi=3.2.1=hd88cf55_4
  - libgcc-ng=8.2.0=hdf63c60_1
  - libgfortran-ng=7.3.0=hdf63c60_0
  - libopenblas=0.3.6=h5a2b251_1
  - libstdcxx-ng=8.2.0=hdf63c60_1
  - ncurses=6.1=he6710b0_1
  - nomkl=3.0=0
  - numpy=1.16.2=py37h99e49ec_0
  - numpy-base=1.16.2=py37h2f8d375_0
  - openssl=1.1.1b=h7b6447c_1
  - pandas=0.24.2=py37he6710b0_0
  - parso=0.3.4=py37_0
  - pexpect=4.6.0=py37_0
  - pickleshare=0.7.5=py37_0
  - pip=19.0.3=py37_0
  - prompt_toolkit=2.0.9=py37_0
  - ptyprocess=0.6.0=py37_0
  - pygments=2.3.1=py37_0
  - python=3.7.3=h0371630_0
  - python-dateutil=2.8.0=py37_0
  - pytz=2018.9=py37_0
  - readline=7.0=h7b6447c_5
  - setuptools=40.8.0=py37_0
  - six=1.12.0=py37_0
  - sqlite=3.27.2=h7b6447c_0
  - tk=8.6.8=hbc83047_0
  - traitlets=4.3.2=py37_0
  - wcwidth=0.1.7=py37_0
  - wheel=0.33.1=py37_0
  - xz=5.2.4=h14c3975_4
  - zlib=1.2.11=h7b6447c_3
  - pip:
    - pyarrow==0.13.0
prefix: /databricks/conda/envs/databricks-minimal