Partager via


Databricks Runtime 6.0 avec Conda (non pris en charge)

Remarque

Cette version n’est plus disponible. Si vous souhaitez utiliser Conda pour gérer les bibliothèques et les environnements Python, utilisez une version prise en charge de Databricks Runtime pour Machine Learning.

Databricks Runtime 6.0 avec Conda (version bêta) vous permet de tirer parti de Conda pour gérer les bibliothèques et les environnements Python. Ce runtime offre deux options d’environnement Conda racine lors de la création du cluster :

  • L’environnement Databricks Standard comprend des versions mises à jour de nombreux packages Python populaires. Cet environnement est destiné à remplacer les notebooks existants qui s’exécutent sur Databricks Runtime. Il s’agit de l’environnement de runtime Databricks basé sur Conda par défaut.
  • L’environnement Databricks minimal contient un nombre minimal de packages requis pour la fonctionnalité de notebook Python PySpark et Databricks. Cet environnement est idéal si vous souhaitez personnaliser le runtime avec différents packages Python.

Les deux incluent la prise en charge de l’Utilitaire de bibliothèque Databricks (dbutils.library) (hérité).

Remarque

Les bibliothèques Scala, Java et R de Databricks Runtime 6.0 avec Conda sont identiques à celles de Databricks Runtime 6.0. Pour plus d’informations, consultez les notes de publication Databricks Runtime 6.0 (non pris en charge). Pour plus d’informations sur l’utilisation de Databricks Runtime avec Conda, consultez Conda.

Nouvelles fonctionnalités

Consultez les nouvelles fonctionnalités de Databricks Runtime 6.0.

Améliorations

Consultez les améliorations apportées à Databricks Runtime 6.0.

Résolution de bogue

Résolution du problème 9104 de Conda (la liste Conda échoue si le fichier « RECORD » contient des entrées en double).

Problèmes connus

  • Par défaut, chaque notebook Python s’exécute dans son propre environnement Conda isolé. Cet environnement isolé est cloné à partir de l’environnement Conda racine. Étant donné que ce clone est une opération coûteuse, dans certains cas, vous pouvez rencontrer les problèmes suivants :

    • Si le type d’instance de cluster n’a pas de stockage local, la création du cluster peut échouer avec une erreur telle que :

      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
      
    • L’attachement simultané de nombreux notebooks Python à un même cluster (déclenché par des travaux planifiés ou des workflows de notebook par exemple) peut entraîner l’échec de l’attachement de certains de ces notebooks.

    Si vous rencontrez l’un des problèmes ci-dessus et que vous n’avez pas besoin d’exécuter des notebooks Python dans des environnements isolés (autrement dit, votre cluster n’est pas partagé), vous pouvez désactiver la création d’un environnement Python isolé pour chaque notebook Python en définissant spark.databricks.libraryIsolation.enabled sur false dans la configuration de Spark. La définition de cet indicateur désactive dbutils.library également.

  • Si vous mettez à niveau l’environnement Conda installé, la nouvelle version de Conda peut ne pas inclure le correctif du problème 9104 de Conda (la liste Conda échoue si le fichier « RECORD » contient des entrées en double). Si vous mettez à niveau Conda et que vous rencontrez des défaillances lors de l’attachement de notebooks Python ou si vous utilisez conda list avec l’erreur TypeError: '<' not supported between instances of 'NoneType' and 'str' dans les journaux du pilote ou sur un notebook, utilisez une version de Conda qui comprend le correctif ou de mettre à niveau l’environnement Conda installé dans cette version.

Environnement du système

L’environnement système de Databricks Runtime 6.0 avec Conda diffère de celui de Databricks Runtime 6.0 comme suit :

Il existe des différences dans les bibliothèques Python installées.

Bibliothèques

Voici le fichier environment.yml exporté pour les environnements racine par défaut sur Databricks Runtime 6.0 avec 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