Share via


Databricks Runtime 6.0 mit Conda (nicht unterstützt)

Hinweis

Dieses Release ist nicht mehr verfügbar. Wenn Sie Conda zur Verwaltung von Python-Bibliotheken und -Umgebungen verwenden möchten, nutzen Sie eine unterstützte Version von Databricks Runtime für Machine Learning.

Mit Databricks Runtime 6.0 mit Conda können Sie die Vorteile von Conda für die Verwaltung von Python-Bibliotheken und -Umgebungen nutzen. Diese Runtime bietet zwei Conda-Stammumgebungsoptionen bei der Clustererstellung:

  • Die Databricks Standard-Umgebung enthält aktualisierte Versionen vieler beliebter Python-Pakete. Diese Umgebung ist als direkter Ersatz für vorhandene Notebooks gedacht, die in Databricks Runtime ausgeführt werden. Dies ist die standardmäßige auf Databricks mit Conda basierende Laufzeitumgebung.
  • Die Databricks Minimal-Umgebung enthält die mindestens notwendigen Pakete für die Python-Notebookfunktionen von PySpark und Databricks. Diese Umgebung ist ideal, wenn Sie die Laufzeit mit verschiedenen Python-Paketen anpassen möchten.

Beide bieten Unterstützung für das Bibliothekshilfsprogramm (dbutils.library) (Legacy) von Databricks an.

Hinweis

Die Scala-, Java- und R-Bibliotheken in Databricks Runtime 6.0 mit Conda sind identisch mit denen in Databricks Runtime 6.0. Einzelheiten finden Sie in den Versionshinweisen zu Databricks Runtime 6.0 (nicht unterstützt). Informationen zur Verwendung von Databricks Runtime mit Conda finden Sie unter Conda.

Neue Funktionen

Weitere Informationen finden Sie unter Neue Features in Databricks Runtime 6.0.

Verbesserungen

Weitere Informationen finden Sie unter Verbesserungen in Databricks Runtime 6.0.

Fehlerbehebung

Das Conda-Problem 9104 (Conda List schlägt fehl, wenn die Datei RECORD doppelte Datensätze aufweist) wurde behoben.

Bekannte Probleme

  • Standardmäßig wird jedes Python-Notebook in einer eigenen isolierten Conda-Umgebung ausgeführt. Diese isolierte Umgebung wird aus der Conda-Stammumgebung geklont. Da dieser Klonvorgang aufwändig ist, können in bestimmten Fällen die folgenden Probleme auftreten:

    • Wenn der Clusterinstanztyp nicht über lokalen Speicher verfügt, kann die Clustererstellung mit einer Fehlermeldung wie dieser fehlschlagen:

      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
      
    • Das gleichzeitige Anfügen vieler Python-Notebooks an einen einzigen Cluster (z. B. ausgelöst durch geplante Aufträge oder Notebook-Workflows) kann dazu führen, dass einige dieser Notebooks nicht angefügt werden können.

    Wenn eines der oben genannten Probleme auftritt und Sie Python-Notebooks nicht in isolierten Umgebungen ausführen müssen (d. h. Ihr Cluster wird nicht gemeinsam genutzt), können Sie die Erstellung einer isolierten Python-Umgebung für jedes Python-Notebook deaktivieren, indem Sie spark.databricks.libraryIsolation.enabled in der Spark-Konfiguration auf false festlegen. Durch Festlegen dieses Flags wird dbutils.library ebenfalls deaktiviert.

  • Wenn Sie ein Upgrade der installierten Conda-Version durchführen, enthält die neue Version möglicherweise nicht die Korrektur für das Conda-Problem 9104 (Conda List schlägt fehl, wenn die Datei RECORD doppelte Datensätze aufweist). Wenn Sie ein Upgrade von Conda vornehmen und Fehler beim Anfügen von Python-Notebooks oder bei der Verwendung von conda list mit dem Fehler TypeError: '<' not supported between instances of 'NoneType' and 'str' in Treiberprotokollen oder in einem Notebook feststellen, verwenden Sie entweder eine Version von Conda, die die Korrektur enthält, oder vermeiden Sie ein Upgrade von Conda, das in diesem Release installiert ist.

Systemumgebung

Die Systemumgebung in Databricks Runtime 6.0 mit Conda unterscheidet sich wie folgt von Databricks Runtime 6.0:

Es gibt einige Unterschiede bei den installierten Python-Bibliotheken.

Bibliotheken

Nachstehend wird die exportierte Datei environment.yml für Standardstammumgebungen in Databricks Runtime 6.0 mit Conda gezeigt.

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