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 auffalse
festlegen. Durch Festlegen dieses Flags wirddbutils.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 FehlerTypeError: '<' 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