共用方式為


具有 Conda 的 Databricks Runtime 6.0 (不支援)

注意

此版本已不再提供。 如果您想要使用 Conda 來管理 Python 連結庫和環境,請使用支援的 Databricks Runtime 版本進行 機器學習。

Databricks Runtime 6.0 與 Conda (Beta) 可讓您利用 Conda 來管理 Python 連結庫和環境。 此執行時間會在叢集建立時提供兩個根 Conda 環境選項:

  • Databricks Standard 環境包含許多熱門 Python 套件的更新版本。 此環境旨在取代在 Databricks Runtime 上執行的現有筆記本。 這是預設的 Databricks Conda 型運行時間環境。
  • Databricks 最低 環境包含 PySpark 和 Databricks Python 筆記本功能所需的套件數目下限。 如果您想要使用各種 Python 套件自定義運行時間,此環境是理想的環境。

兩者都包含 Databricks 連結庫公用程式 (dbutils.library ) (legacy) 的支援。

注意

Databricks Runtime 6.0 與 Conda 中的 Scala、Java 和 R 連結庫與 Databricks Runtime 6.0 中的連結庫相同。 如需詳細資訊,請參閱 Databricks Runtime 6.0(不支援) 版本資訊。 如需如何搭配 Conda 使用 Databricks Runtime 的詳細資訊,請參閱 Conda

新功能

請參閱 Databricks Runtime 6.0 新功能

改善

請參閱 Databricks Runtime 6.0 改善

錯誤修正

已修正 Conda 問題 9104 (如果 “RECORD” 檔案有重複的專案,Conda 清單會失敗)。

已知問題

  • 根據預設, 每個 Python 筆記本都會在其自己的隔離 Conda 環境中執行。 這個隔離的環境是從根 Conda 環境複製而來。 由於此複製是昂貴的作業,因此在某些情況下,您可能會遇到下列問題:

    • 如果叢集實例類型沒有本機記憶體,叢集建立可能會失敗,並出現類似下列錯誤:

      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
      
    • 同時將許多 Python 筆記本附加至單一叢集(例如,由排程的工作或筆記本工作流程觸發),可能會導致其中一些筆記本無法附加。

    如果您遇到上述任何問題,而且不需要在隔離的環境中執行 Python 筆記本(也就是您的叢集未共用),您可以藉由在 Spark 組態設定 spark.databricks.libraryIsolation.enabledfalse ,停用為每個 Python 筆記本建立隔離的 Python 環境。 設定此旗標也會停用 dbutils.library

  • 如果您升級已安裝的 Conda,新版 Conda 可能不會包含 Conda 問題 9104 的修正程式(如果 “RECORD” 檔案有重複的專案,Conda 列表會失敗)。 如果您升級 Conda 並看到附加 Python 筆記本失敗,或在 conda list 驅動程式記錄檔或筆記本上使用 錯誤 TypeError: '<' not supported between instances of 'NoneType' and 'str' ,請使用具有修正的 Conda 版本,或避免在此版本中升級 Conda。

系統環境

Databricks Runtime 6.0 中的系統環境與 Databricks Runtime 6.0 不同,如下所示:

已安裝的 Python 連結庫有一些差異。

圖書館

以下是使用 Conda 的 Databricks Runtime 6.0 上預設根環境的導出 environment.yml 檔案。

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 最小

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