Databricks Runtime 8.0 for ML (EoS)

Note

Support for this Databricks Runtime version has ended. For the end-of-support date, see End-of-support history. For all supported Databricks Runtime versions, see Databricks Runtime release notes versions and compatibility.

Databricks released this version in March 2021.

Databricks Runtime 8.0 for Machine Learning provides a ready-to-go environment for machine learning and data science based on Databricks Runtime 8.0 (EoS). Databricks Runtime ML contains many popular machine learning libraries, including TensorFlow, PyTorch, and XGBoost. It also supports distributed deep learning training using Horovod.

For more information, including instructions for creating a Databricks Runtime ML cluster, see AI and machine learning on Databricks.

Note

These release notes may include references to features that are not available on Google Cloud as of this release.

New features and major changes

Databricks Runtime 8.0 ML is built on top of Databricks Runtime 8.0. For information on what’s new in Databricks Runtime 8.0, including Apache Spark MLlib and SparkR, see the Databricks Runtime 8.0 (EoS) release notes.

Conda channel configuration

In September 2020 Anaconda Inc. updated their terms of service for anaconda.org channels. Based on the new terms of service you may require a commercial license if you rely on Anaconda’s packaging and distribution. Visit Anaconda Commercial Edition FAQ for more information. As a result of this change, we removed the default channel configuration for the Conda package manager in Databricks Runtime ML 8.0. To install or update packages using the %conda command, you must specify a channel. Your use of any Anaconda channels is governed by their terms of service.

Major changes to Databricks Runtime ML Python environment

See Databricks Runtime 8.0 (EoS) for the major changes to the Databricks Runtime Python environment. For a full list of installed Python packages and their versions, see Python libraries.

Major changes to the environment

  • Default Conda channels have been removed.

  • The default system Python version has been updated from 3.7.6 to 3.8.5.

  • TensorFlow 1.x is no longer supported.

Python packages upgraded

  • tensorboard 2.3.1 -> 2.4.1

  • tensorflow 2.3.1 -> 2.4.0

  • matplotlib 3.1.3 -> 3.2.2

  • joblib 0.14.1 -> 0.17.0

  • petastorm 0.9.7 -> 0.9.8

  • cloudpickle 1.4.1 -> 1.6.0

  • nltk 3.4.5 -> 3.5

  • Packages in the Anaconda distribution have been upgraded from 2020.02 to 2020.11

Python packages added

  • shap: 0.37.0

Python packages removed

  • gorilla

  • backports

System environment

The system environment in Databricks Runtime 8.0 ML differs from Databricks Runtime 8.0 as follows:

Libraries

The following sections list the libraries included in Databricks Runtime 8.0 ML that differ from those included in Databricks Runtime 8.0.

Python libraries

Databricks Runtime 8.0 ML uses Conda for Python package management and includes many popular ML packages.

In addition to the packages specified in the Conda environments in the following sections, Databricks Runtime 8.0 ML also includes the following packages:

  • hyperopt 0.2.5.db1

  • sparkdl 2.1.0.db4

Python libraries on CPU clusters

name: databricks-ml
channels:
  - pytorch
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - absl-py=0.11.0=pyhd3eb1b0_1
  - aiohttp=3.6.3=py38h7b6447c_0
  - asn1crypto=1.4.0=py_0
  - astor=0.8.1=py38_0
  - async-timeout=3.0.1=py38_0
  - attrs=20.3.0=pyhd3eb1b0_0
  - backcall=0.2.0=py_0
  - bcrypt=3.2.0=py38h7b6447c_0
  - blas=1.0=mkl
  - blinker=1.4=py38_0
  - boto3=1.16.7=pyhd3eb1b0_0
  - botocore=1.19.7=pyhd3eb1b0_0
  - brotlipy=0.7.0=py38h27cfd23_1003
  - c-ares=1.17.1=h27cfd23_0
  - ca-certificates=2021.4.13=h06a4308_1 # (updated from 2021.1.19 in May 26, 2021 maintenance update)
  - cachetools=4.2.0=pyhd3eb1b0_0
  - certifi=2020.12.5=py38h06a4308_0
  - cffi=1.14.3=py38h261ae71_2
  - chardet=3.0.4=py38h06a4308_1003
  - click=7.1.2=pyhd3eb1b0_0
  - cloudpickle=1.6.0=py_0
  - configparser=5.0.1=py_0
  - cpuonly=1.0=0
  - cryptography=3.1.1=py38h1ba5d50_0
  - cycler=0.10.0=py38_0
  - cython=0.29.21=py38h2531618_0
  - decorator=4.4.2=py_0
  - dill=0.3.2=py_0
  - docutils=0.15.2=py38_0
  - entrypoints=0.3=py38_0
  - flask=1.1.2=py_0
  - freetype=2.10.4=h5ab3b9f_0
  - future=0.18.2=py38_1
  - gitdb=4.0.5=py_0
  - gitpython=3.1.11=pyhd3eb1b0_1
  - google-auth=1.22.1=py_0
  - google-auth-oauthlib=0.4.2=pyhd3eb1b0_2
  - google-pasta=0.2.0=py_0
  - gunicorn=20.0.4=py38_0
  - h5py=2.10.0=py38h7918eee_0
  - hdf5=1.10.4=hb1b8bf9_0
  - icu=58.2=he6710b0_3
  - idna=2.10=pyhd3eb1b0_0
  - importlib-metadata=2.0.0=py_1
  - intel-openmp=2019.4=243
  - ipykernel=5.3.4=py38h5ca1d4c_0
  - ipython=7.19.0=py38hb070fc8_1
  - ipython_genutils=0.2.0=pyhd3eb1b0_1
  - isodate=0.6.0=py_1
  - itsdangerous=1.1.0=py_0
  - jedi=0.17.2=py38h06a4308_1
  - jinja2=2.11.2=pyhd3eb1b0_0
  - jmespath=0.10.0=py_0
  - joblib=0.17.0=py_0
  - jpeg=9b=h024ee3a_2
  - jupyter_client=6.1.7=py_0
  - jupyter_core=4.6.3=py38_0
  - kiwisolver=1.3.0=py38h2531618_0
  - krb5=1.17.1=h173b8e3_0
  - lcms2=2.11=h396b838_0
  - ld_impl_linux-64=2.33.1=h53a641e_7
  - libedit=3.1.20191231=h14c3975_1
  - libffi=3.3=he6710b0_2
  - libgcc-ng=9.1.0=hdf63c60_0
  - libgfortran-ng=7.3.0=hdf63c60_0
  - libpng=1.6.37=hbc83047_0
  - libpq=12.2=h20c2e04_0
  - libprotobuf=3.13.0.1=hd408876_0
  - libsodium=1.0.18=h7b6447c_0
  - libstdcxx-ng=9.1.0=hdf63c60_0
  - libtiff=4.1.0=h2733197_1
  - lightgbm=3.1.1=py38h2531618_0
  - lz4-c=1.9.2=heb0550a_3
  - mako=1.1.3=py_0
  - markdown=3.3.2=py38_0
  - markupsafe=1.1.1=py38h7b6447c_0
  - matplotlib-base=3.2.2=py38hef1b27d_0
  - mkl=2019.4=243
  - mkl-service=2.3.0=py38he904b0f_0
  - mkl_fft=1.2.0=py38h23d657b_0
  - mkl_random=1.1.0=py38h962f231_0
  - more-itertools=8.6.0=pyhd3eb1b0_0
  - multidict=4.7.6=py38h7b6447c_1
  - ncurses=6.2=he6710b0_1
  - networkx=2.5=py_0
  - nltk=3.5=py_0
  - numpy=1.19.2=py38h54aff64_0
  - numpy-base=1.19.2=py38hfa32c7d_0
  - oauthlib=3.1.0=py_0
  - olefile=0.46=py_0
  - openssl=1.1.1k=h27cfd23_0 # (updated from 1.1.1i in May 26, 2021 maintenance update)
  - packaging=20.4=py_0
  - pandas=1.1.3=py38he6710b0_0
  - paramiko=2.7.2=py_0
  - parso=0.7.0=py_0
  - patsy=0.5.1=py38_0
  - pexpect=4.8.0=pyhd3eb1b0_3
  - pickleshare=0.7.5=pyhd3eb1b0_1003
  - pillow=8.0.1=py38he98fc37_0
  - pip=20.2.4=py38h06a4308_0
  - plotly=4.14.2=pyhd3eb1b0_0
  - prompt-toolkit=3.0.8=py_0
  - prompt_toolkit=3.0.8=0
  - protobuf=3.13.0.1=py38he6710b0_1
  - psutil=5.7.2=py38h7b6447c_0
  - psycopg2=2.8.5=py38h3c74f83_1
  - ptyprocess=0.6.0=pyhd3eb1b0_2
  - pyasn1=0.4.8=py_0
  - pyasn1-modules=0.2.8=py_0
  - pycparser=2.20=py_2
  - pygments=2.7.2=pyhd3eb1b0_0
  - pyjwt=1.7.1=py38_0
  - pynacl=1.4.0=py38h7b6447c_1
  - pyodbc=4.0.30=py38he6710b0_0
  - pyopenssl=19.1.0=pyhd3eb1b0_1
  - pyparsing=2.4.7=pyhd3eb1b0_0
  - pysocks=1.7.1=py38h06a4308_0
  - python=3.8.8=hdb3f193_4 # (updated from 3.8.5 in May 26, 2021 maintenance update)
  - python-dateutil=2.8.1=py_0
  - python-editor=1.0.4=py_0
  - pytz=2020.1=py_0
  - pyzmq=19.0.2=py38he6710b0_1
  - readline=8.0=h7b6447c_0
  - regex=2020.10.15=py38h7b6447c_0
  - requests=2.24.0=py_0
  - requests-oauthlib=1.3.0=py_0
  - retrying=1.3.3=py_2
  - rsa=4.7=pyhd3eb1b0_1
  - s3transfer=0.3.4=pyhd3eb1b0_0
  - scikit-learn=0.23.2=py38h0573a6f_0
  - scipy=1.5.2=py38h0b6359f_0
  - setuptools=50.3.1=py38h06a4308_1
  - simplejson=3.17.2=py38h7b6447c_0
  - six=1.15.0=py38h06a4308_0
  - smmap=3.0.4=py_0
  - sqlite=3.33.0=h62c20be_0
  - sqlparse=0.4.1=py_0
  - statsmodels=0.12.0=py38h7b6447c_0
  - tabulate=0.8.7=py38_0
  - threadpoolctl=2.1.0=pyh5ca1d4c_0
  - tk=8.6.10=hbc83047_0
  - tornado=6.0.4=py38h7b6447c_1
  - tqdm=4.50.2=py_0
  - traitlets=5.0.5=py_0
  - typing_extensions=3.7.4.3=py_0
  - unixodbc=2.3.9=h7b6447c_0
  - urllib3=1.25.11=py_0
  - wcwidth=0.2.5=py_0
  - websocket-client=0.57.0=py38_2
  - werkzeug=1.0.1=py_0
  - wheel=0.35.1=pyhd3eb1b0_0
  - wrapt=1.12.1=py38h7b6447c_1
  - xz=5.2.5=h7b6447c_0
  - yarl=1.6.3=py38h27cfd23_0
  - zeromq=4.3.3=he6710b0_3
  - zipp=3.4.0=pyhd3eb1b0_0
  - zlib=1.2.11=h7b6447c_3
  - zstd=1.4.5=h9ceee32_0
  - pip:
    - astunparse==1.6.3
    - azure-core==1.10.0
    - azure-storage-blob==12.7.0
    - databricks-cli==0.14.1
    - diskcache==5.1.0
    - docker==4.4.1
    - flatbuffers==1.12
    - gast==0.3.3
    - grpcio==1.32.0
    - horovod==0.21.1
    - joblibspark==0.3.0
    - keras-preprocessing==1.1.2
    - koalas==1.5.0
    - llvmlite==0.35.0
    - mleap==0.16.1
    - mlflow==1.13.1
    - msrest==0.6.19
    - numba==0.52.0
    - opt-einsum==3.3.0
    - petastorm==0.9.8
    - pyarrow==1.0.1
    - pyyaml==5.4
    - querystring-parser==1.2.4
    - seaborn==0.10.0
    - shap==0.37.0
    - slicer==0.0.3
    - spark-tensorflow-distributor==0.1.0
    - tensorboard==2.4.1
    - tensorboard-plugin-wit==1.8.0
    - tensorflow-cpu==2.4.0
    - tensorflow-estimator==2.4.0
    - termcolor==1.1.0
    - torch==1.7.1
    - torchvision==0.8.2
    - xgboost==1.3.1
prefix: /databricks/conda/envs/databricks-ml

Spark packages containing Python modules

Spark Package

Python Module

Version

graphframes

graphframes

0.8.1-db2-spark3.1

R libraries

The R libraries are identical to the R Libraries in Databricks Runtime 8.0.

Java and Scala libraries (Scala 2.12 cluster)

In addition to Java and Scala libraries in Databricks Runtime 8.0, Databricks Runtime 8.0 ML contains the following JARs:

CPU clusters

Group ID

Artifact ID

Version

com.typesafe.akka

akka-actor_2.12

2.5.23

ml.combust.mleap

mleap-databricks-runtime_2.12

0.17.0-4882dc3

ml.dmlc

xgboost4j-spark_2.12

1.3.1

ml.dmlc

xgboost4j_2.12

1.3.1

org.graphframes

graphframes_2.12

0.8.1-db2-spark3.1

org.mlflow

mlflow-client

1.13.1

org.mlflow

mlflow-spark

1.13.1

org.scala-lang.modules

scala-java8-compat_2.12

0.8.0

org.tensorflow

spark-tensorflow-connector_2.12

1.15.0