Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
La compatibilidad con esta versión de Databricks Runtime ha finalizado. Para obtener la fecha de finalización del soporte técnico, consulte Historial de fin de soporte técnico y finalización del ciclo de vida. Para conocer todas las versiones de Databricks Runtime compatibles, consulte las notas de lanzamientos y compatibilidad de Databricks Runtime.
Databricks Runtime 12.1 para Machine Learning proporciona un entorno listoto-go para machine learning y ciencia de datos basado en Databricks Runtime 12.1 (EoS). Databricks Runtime ML contiene muchas bibliotecas de aprendizaje automático populares, como TensorFlow, PyTorch y XGBoost. Databricks Runtime ML incluye AutoML, una herramienta para entrenar automáticamente canalizaciones de aprendizaje automático. Databricks Runtime ML también admite el entrenamiento de aprendizaje profundo distribuido mediante Horovod.
Para más información, incluidas las instrucciones para crear un clúster de Databricks Runtime ML, consulte IA y aprendizaje automático en Databricks.
Nuevas características y mejoras
Databricks Runtime 12.1 ML se basa en Databricks Runtime 12.1. Para obtener información sobre las novedades de Databricks Runtime 12.1, incluidas apache Spark MLlib y SparkR, consulte las notas de la versión de Databricks Runtime 12.1 (EoS).
AutoML
A partir de Databricks Runtime 12.1 ML, el AutoML Python API permite especificar un nombre personalizado para el experimento generado por AutoML. Utilice el parámetro experiment_name.
Para obtener más información sobre AutoML, consulte ¿Qué es AutoML?.
Entorno del sistema
El entorno del sistema de Databricks Runtime 12.1 ML se diferencia del de Databricks Runtime 12.1 en los siguientes aspectos:
-
DBUtils: Databricks Runtime ML no incluye la utilidad de biblioteca (dbutils.library) (heredada).
Use comandos
%pipen su lugar. Vea Bibliotecas de Python con ámbito específico para notebook. - En el caso de los clústeres de GPU, Databricks Runtime ML incluye las siguientes bibliotecas de GPU de NVIDIA:
- CUDA 11.3
- cuDNN 8.0.5.39
- NCCL 2.9.9
- TensorRT 7.2.2
Databricks Runtime 12.1 ML incluye XGBoost 1.7.2, que no admite clústeres de GPU con capacidad de proceso 5.2 ni versiones anteriores.
Bibliotecas
En las siguientes secciones, se enumeran las bibliotecas que se incluyen en Databricks Runtime 12.1 ML, que difieren de las que se incluyen en Databricks Runtime 12.1.
En esta sección:
- Bibliotecas de nivel superior
- bibliotecas Python
- Bibliotecas de R
- bibliotecas de Java y Scala (clúster de Scala 2.12)
Bibliotecas de nivel superior
Databricks Runtime 12.1 ML incluye las siguientes bibliotecas de nivel superior:
- GraphFrames
- Horovod y HorovodRunner
- MLflow
- PyTorch
- spark-tensorflow-connector (conector para Spark y TensorFlow)
- TensorFlow
- TensorBoard
- Scikit-learn
bibliotecas de Python
Databricks Runtime 12.1 ML usa Virtualenv para Python administración de paquetes e incluye muchos paquetes populares de ML.
Además de los paquetes especificados en las siguientes secciones, Databricks Runtime 12.1 ML también incluye estos paquetes:
- hyperopt 0.2.7.db1
- sparkdl 2.3.0-db3
- automl 1.15.0
Para reproducir el entorno de ml de Databricks Runtime Python en el entorno virtual de Python local, descargue el archivo requirements-12.1.txt y ejecute pip install -r requirements-12.1.txt. Este comando instala todas las bibliotecas de código abierto que usa Databricks Runtime ML, pero no instala bibliotecas desarrolladas por Databricks, como databricks-automl, databricks-feature-store o la bifurcación de Databricks de hyperopt.
bibliotecas de Python en clústeres de CPU
| Biblioteca | Versión | Biblioteca | Versión | Biblioteca | Versión |
|---|---|---|---|---|---|
| absl-py | 1.0.0 | argon2-cffi | 21.3.0 | argon2-cffi-bindings | 21.2.0 |
| astor | 0.8.1 | "asttokens" | 2.0.5 | astunparse | 1.6.3 |
| atributos | 21.4.0 | azure-core | 1.26.1 | azure-cosmos | 4.2.0 |
| llamada de retorno | 0.2.0 | backports.entry-points-selectable | 1.2.0 | bcrypt | 3.2.0 |
| beautifulsoup4 | 4.11.1 | negro | 22.3.0 | blanquear | 4.1.0 |
| felicidad | 0.7.9 | boto3 | 1.21.32 | botocore | 1.24.32 |
| cachetools | 4.2.2 | catálogo | 2.0.8 | codificadores de categorías | 2.5.1.post0 |
| certifi | 2021.10.8 | cffi | 1.15.0 | chardet | 4.0.0 |
| normalizador de conjuntos de caracteres | 2.0.4 | Haz clic | 8.0.4 | cloudpickle | 2.0.0 |
| cmdstanpy | 1.0.8 | confitería | 0.0.3 | configparser | 5.2.0 |
| convertirFecha | 2.4.0 | criptografía | 3.4.8 | ciclista | 0.11.0 |
| cymem | 2.0.7 | Cython | 0.29.28 | databricks-automl-runtime | 0.2.14 |
| databricks-cli | 0.17.4 | databricks-feature-store | 0.9.0 | dbl-tempo | 0.1.12 |
| dbus-python | 1.2.16 | debugpy | 1.5.1 | decorador (en contexto técnico, "decorator" es un patrón de diseño) | 5.1.1 |
| defusedxml | 0.7.1 | dill | 0.3.4 | diskcache | 5.4.0 |
| distlib | 0.3.6 | Conversión de docstring a markdown | 0.11 | puntos de entrada | 0,4 |
| ephem | 4.1.4 | executing | 0.8.3 | visión general de las facetas | 1.0.0 |
| fastjsonschema | 2.16.2 | fasttext | 0.9.2 | bloqueo de archivos | 3.6.0 |
| Flask | 1.1.2 | flatbuffers | 22.12.6 | fonttools | 4.25.0 |
| fsspec | 2022.2.0 | futuro | 0.18.2 | gast | 0.4.0 |
| gitdb | 4.0.10 | GitPython | 3.1.27 | google-auth | 1.33.0 |
| google-auth-oauthlib | 0.4.6 | google-pasta | 0.2.0 | grpcio | 1.42.0 |
| gunicorn | 20.1.0 | gviz-api | 1.10.0 | h5py | 3.6.0 |
| hijri-converter | 2.2.4 | vacaciones | 0.17.2 | Horovod | 0.26.1 |
| htmlmin | 0.1.12 | plataforma Huggingface-hub | 0.11.1 | idna | 3.3 |
| Hash de imagen | 4.3.1 | imbalanced-learn | 0.8.1 | importlib-metadata | 4.11.3 |
| ipykernel | 6.15.3 | ipython | 8.5.0 | ipython-genutils | 0.2.0 |
| ipywidgets | 7.7.2 | isodate | 0.6.1 | Es peligroso | 2.0.1 |
| Jedi | 0.18.1 | Jinja2 | 2.11.3 | jmespath | 0.10.0 |
| joblib | 1.1.0 | joblibspark | 0.5.0 | jsonschema | 4.4.0 |
| Cliente Jupyter | 6.1.12 | jupyter_core | 4.11.2 | jupyterlab-pygments | 0.1.2 |
| jupyterlab-widgets | 1.0.0 | keras | 2.10.0 | keras-preprocessing | 1.1.2 |
| kiwisolver | 1.3.2 | calendario lunar coreano | 0.3.1 | códigos de idioma | 3.3.0 |
| libclang | 14.0.6 | lightgbm | 3.3.3 | llvmlite | 0.38.0 |
| Calendario Lunar | 0.0.9 | Mako | 1.2.0 | Markdown | 3.3.4 |
| MarkupSafe | 2.0.1 | matplotlib | 3.5.1 | matplotlib-inline | 0.1.2 |
| Mccabe | 0.7.0 | mistune | 0.8.4 | mleap | 0.20.0 |
| mlflow-skinny | 2.1.1 | multimétodo | 1.9.1 | murmurhash | 1.0.9 |
| mypy-extensions | 0.4.3 | nbclient | 0.5.13 | nbconvert | 6.4.4 |
| nbformat | 5.3.0 | nest-asyncio | 1.5.5 | networkx | 2.7.1 |
| NLTK | 3.7 | nodeenv | 1.7.0 | notebook | 6.4.8 |
| numba | 0.55.1 | numpy | 1.21.5 | oauthlib | 3.2.0 |
| opt-einsum | 3.3.0 | embalaje | 21,3 | Pandas | 1.4.2 |
| generación de perfiles de pandas | 3.5.0 | pandocfilters | 1.5.0 | paramiko | 2.9.2 |
| parso | 0.8.3 | especificación de ruta (pathspec) | 0.9.0 | patía | 0.6.1 |
| chivo expiatorio | 0.5.2 | petastorm | 0.12.0 | pexpect | 4.8.0 |
| phik | 0.12.3 | pickleshare | 0.7.5 | Almohada | 9.0.1 |
| pip | 21.2.4 | platformdirs | 2.6.0 | plotly | 5.6.0 |
| pluggy | 1.0.0 | pmdarima | 2.0.2 | preshed | 3.0.8 |
| Cliente-Prometeo | 0.13.1 | prompt-toolkit | 3.0.20 | profeta | 1.1.1 |
| protobuf | 3.19.4 | psutil | 5.8.0 | psycopg2 | 2.9.3 |
| ptyprocess | 0.7.0 | pure-eval | 0.2.2 | pyarrow | 7.0.0 |
| pyasn1 | 0.4.8 | pyasn1-modules | 0.2.8 | pybind11 | 2.10.1 |
| pycparser | 2.21 | pydantic (una biblioteca de validación de datos en Python) | 1.10.2 | pyflakes | 2.5.0 |
| Pygments | 2.11.2 | PyGObject | 3.36.0 | PyJWT | 2.6.0 |
| PyMeeus | 0.5.12 | PyNaCl | 1.5.0 | pyodbc | 4.0.32 |
| pyparsing | 3.0.4 | pyright | 1.1.283 | pyrsistent | 0.18.0 |
| Python-dateutil | 2.8.2 | editor de Python | 1.0.4 | python-lsp-jsonrpc | 1.0.0 |
| python-lsp-servidor | 1.6.0 | pytz | 2021.3 | PyWavelets | 1.3.0 |
| PyYAML | 6,0 | pyzmq | 22.3.0 | regex | 15/03/2022 |
| solicitudes | 2.27.1 | requests-oauthlib | 1.3.1 | requests-unixsocket | 0.2.0 |
| cuerda | 0.22.0 | rsa | 4.7.2 | s3transfer | 0.5.0 |
| scikit-learn | 1.0.2 | scipy | 1.7.3 | biblioteca de visualización de datos de Python llamada seaborn | 0.11.2 |
| Send2Trash | 1.8.0 | setuptools | 61.2.0 | setuptools-git | 1.2 |
| shap | 0.41.0 | simplejson | 3.17.6 | seis | 1.16.0 |
| rebanador | 0.0.7 | smart-open | 5.1.0 | smmap | 5.0.0 |
| soupsieve | 2.3.1 | spacy | 3.4.3 | spacy-legacy | 3.0.10 |
| espacy-loggers | 1.0.4 | spark-tensorflow-distributor (distribuidor de TensorFlow para Spark) | 1.0.0 | sqlparse | 0.4.2 |
| srsly | 2.4.5 | ssh-import-id | 5.10 | stack-data | 0.2.0 |
| statsmodels (paquete de Python para análisis estadístico) | 0.13.2 | tabulate | 0.8.9 | enredado-up-in-unicode | 0.2.0 |
| tenacidad | 8.0.1 | tensorboard | 2.10.0 | servidor-de-datos-de-tensorboard | 0.6.1 |
| Perfil de plugin de TensorBoard | 2.8.0 | tensorboard-plugin-wit | 1.8.1 | tensorflow-cpu | 2.10.0 |
| Estimador de TensorFlow | 2.10.0 | tensorflow-io-gcs-filesystem | 0.29.0 | termcolor | 2.1.1 |
| terminado | 0.13.1 | ruta de prueba | 0.5.0 | thinc | 8.1.6 |
| threadpoolctl | 2.2.0 | tokenize-rt | 4.2.1 | tokenizers | 0.13.2 |
| tomli | 1.2.2 | antorcha | 1.13.0+cpu | antorcha | 0.14.0+cpu |
| tornado | 6.1 | tqdm | 4.64.0 | traitlets | 5.1.1 |
| Transformadores | 4.25.1 | typeguard | 2.13.3 | typer | 0.7.0 |
| typing_extensions | 4.1.1 | ujson | 5.1.0 | unattended-upgrades | 0,1 |
| urllib3 | 1.26.9 | virtualenv | 20.8.0 | Visiones | 0.7.5 |
| wasabi | 0.10.1 | wcwidth | 0.2.5 | codificaciones web | 0.5.1 |
| cliente de websocket | 0.58.0 | Werkzeug | 2.0.3 | ¿Qué es el parche? | 1.0.3 |
| rueda | 0.37.1 | widgetsnbextension | 3.6.1 | envuelto | 1.12.1 |
| xgboost | 1.7.2 | yapf | 0.31.0 | zipp | 3.7.0 |
bibliotecas de Python en clústeres de GPU
| Biblioteca | Versión | Biblioteca | Versión | Biblioteca | Versión |
|---|---|---|---|---|---|
| absl-py | 1.0.0 | argon2-cffi | 21.3.0 | argon2-cffi-bindings | 21.2.0 |
| astor | 0.8.1 | "asttokens" | 2.0.5 | astunparse | 1.6.3 |
| atributos | 21.4.0 | azure-core | 1.26.1 | azure-cosmos | 4.2.0 |
| llamada de retorno | 0.2.0 | backports.entry-points-selectable | 1.2.0 | bcrypt | 3.2.0 |
| beautifulsoup4 | 4.11.1 | negro | 22.3.0 | blanquear | 4.1.0 |
| felicidad | 0.7.9 | boto3 | 1.21.32 | botocore | 1.24.32 |
| cachetools | 4.2.2 | catálogo | 2.0.8 | codificadores de categorías | 2.5.1.post0 |
| certifi | 2021.10.8 | cffi | 1.15.0 | chardet | 4.0.0 |
| normalizador de conjuntos de caracteres | 2.0.4 | Haz clic | 8.0.4 | cloudpickle | 2.0.0 |
| cmdstanpy | 1.0.8 | confitería | 0.0.3 | configparser | 5.2.0 |
| convertirFecha | 2.4.0 | criptografía | 3.4.8 | ciclista | 0.11.0 |
| cymem | 2.0.7 | Cython | 0.29.28 | databricks-automl-runtime | 0.2.14 |
| databricks-cli | 0.17.4 | databricks-feature-store | 0.9.0 | dbl-tempo | 0.1.12 |
| dbus-python | 1.2.16 | debugpy | 1.5.1 | decorador (en contexto técnico, "decorator" es un patrón de diseño) | 5.1.1 |
| defusedxml | 0.7.1 | dill | 0.3.4 | diskcache | 5.4.0 |
| distlib | 0.3.6 | Conversión de docstring a markdown | 0.11 | puntos de entrada | 0,4 |
| ephem | 4.1.4 | executing | 0.8.3 | visión general de las facetas | 1.0.0 |
| fastjsonschema | 2.16.2 | fasttext | 0.9.2 | bloqueo de archivos | 3.6.0 |
| Flask | 1.1.2 | flatbuffers | 22.12.6 | fonttools | 4.25.0 |
| fsspec | 2022.2.0 | futuro | 0.18.2 | gast | 0.4.0 |
| gitdb | 4.0.10 | GitPython | 3.1.27 | google-auth | 1.33.0 |
| google-auth-oauthlib | 0.4.6 | google-pasta | 0.2.0 | grpcio | 1.42.0 |
| gunicorn | 20.1.0 | gviz-api | 1.10.0 | h5py | 3.6.0 |
| hijri-converter | 2.2.4 | vacaciones | 0.17.2 | Horovod | 0.26.1 |
| htmlmin | 0.1.12 | plataforma Huggingface-hub | 0.11.1 | idna | 3.3 |
| Hash de imagen | 4.3.1 | imbalanced-learn | 0.8.1 | importlib-metadata | 4.11.3 |
| ipykernel | 6.15.3 | ipython | 8.5.0 | ipython-genutils | 0.2.0 |
| ipywidgets | 7.7.2 | isodate | 0.6.1 | Es peligroso | 2.0.1 |
| Jedi | 0.18.1 | Jinja2 | 2.11.3 | jmespath | 0.10.0 |
| joblib | 1.1.0 | joblibspark | 0.5.0 | jsonschema | 4.4.0 |
| Cliente Jupyter | 6.1.12 | jupyter_core | 4.11.2 | jupyterlab-pygments | 0.1.2 |
| jupyterlab-widgets | 1.0.0 | keras | 2.10.0 | keras-preprocessing | 1.1.2 |
| kiwisolver | 1.3.2 | calendario lunar coreano | 0.3.1 | códigos de idioma | 3.3.0 |
| libclang | 14.0.6 | lightgbm | 3.3.3 | llvmlite | 0.38.0 |
| Calendario Lunar | 0.0.9 | Mako | 1.2.0 | Markdown | 3.3.4 |
| MarkupSafe | 2.0.1 | matplotlib | 3.5.1 | matplotlib-inline | 0.1.2 |
| Mccabe | 0.7.0 | mistune | 0.8.4 | mleap | 0.20.0 |
| mlflow-skinny | 2.1.1 | multimétodo | 1.9.1 | murmurhash | 1.0.9 |
| mypy-extensions | 0.4.3 | nbclient | 0.5.13 | nbconvert | 6.4.4 |
| nbformat | 5.3.0 | nest-asyncio | 1.5.5 | networkx | 2.7.1 |
| NLTK | 3.7 | nodeenv | 1.7.0 | notebook | 6.4.8 |
| numba | 0.55.1 | numpy | 1.21.5 | oauthlib | 3.2.0 |
| opt-einsum | 3.3.0 | embalaje | 21,3 | Pandas | 1.4.2 |
| generación de perfiles de pandas | 3.5.0 | pandocfilters | 1.5.0 | paramiko | 2.9.2 |
| parso | 0.8.3 | especificación de ruta (pathspec) | 0.9.0 | patía | 0.6.1 |
| chivo expiatorio | 0.5.2 | petastorm | 0.12.0 | pexpect | 4.8.0 |
| phik | 0.12.3 | pickleshare | 0.7.5 | Almohada | 9.0.1 |
| pip | 21.2.4 | platformdirs | 2.6.0 | plotly | 5.6.0 |
| pluggy | 1.0.0 | pmdarima | 2.0.2 | preshed | 3.0.8 |
| prompt-toolkit | 3.0.20 | profeta | 1.1.1 | protobuf | 3.19.4 |
| psutil | 5.8.0 | psycopg2 | 2.9.3 | ptyprocess | 0.7.0 |
| pure-eval | 0.2.2 | pyarrow | 7.0.0 | pyasn1 | 0.4.8 |
| pyasn1-modules | 0.2.8 | pybind11 | 2.10.1 | pycparser | 2.21 |
| pydantic (una biblioteca de validación de datos en Python) | 1.10.2 | pyflakes | 2.5.0 | Pygments | 2.11.2 |
| PyGObject | 3.36.0 | PyJWT | 2.6.0 | PyMeeus | 0.5.12 |
| PyNaCl | 1.5.0 | pyodbc | 4.0.32 | pyparsing | 3.0.4 |
| pyright | 1.1.283 | pyrsistent | 0.18.0 | Python-dateutil | 2.8.2 |
| editor de Python | 1.0.4 | python-lsp-jsonrpc | 1.0.0 | python-lsp-servidor | 1.6.0 |
| pytz | 2021.3 | PyWavelets | 1.3.0 | PyYAML | 6,0 |
| pyzmq | 22.3.0 | regex | 15/03/2022 | solicitudes | 2.27.1 |
| requests-oauthlib | 1.3.1 | requests-unixsocket | 0.2.0 | cuerda | 0.22.0 |
| rsa | 4.7.2 | s3transfer | 0.5.0 | scikit-learn | 1.0.2 |
| scipy | 1.7.3 | biblioteca de visualización de datos de Python llamada seaborn | 0.11.2 | Send2Trash | 1.8.0 |
| setuptools | 61.2.0 | setuptools-git | 1.2 | shap | 0.41.0 |
| simplejson | 3.17.6 | seis | 1.16.0 | rebanador | 0.0.7 |
| smart-open | 5.1.0 | smmap | 5.0.0 | soupsieve | 2.3.1 |
| spacy | 3.4.3 | spacy-legacy | 3.0.10 | espacy-loggers | 1.0.4 |
| spark-tensorflow-distributor (distribuidor de TensorFlow para Spark) | 1.0.0 | sqlparse | 0.4.2 | srsly | 2.4.5 |
| ssh-import-id | 5.10 | stack-data | 0.2.0 | statsmodels (paquete de Python para análisis estadístico) | 0.13.2 |
| tabulate | 0.8.9 | enredado-up-in-unicode | 0.2.0 | tenacidad | 8.0.1 |
| tensorboard | 2.10.0 | servidor-de-datos-de-tensorboard | 0.6.1 | Perfil de plugin de TensorBoard | 2.8.0 |
| tensorboard-plugin-wit | 1.8.1 | TensorFlow | 2.10.0 | Estimador de TensorFlow | 2.10.0 |
| tensorflow-io-gcs-filesystem | 0.29.0 | termcolor | 2.1.1 | terminado | 0.13.1 |
| ruta de prueba | 0.5.0 | thinc | 8.1.6 | threadpoolctl | 2.2.0 |
| tokenize-rt | 4.2.1 | tokenizers | 0.13.2 | tomli | 1.2.2 |
| antorcha | 1.13.0+cu117 | antorcha | 0.14.0+cu117 | tornado | 6.1 |
| tqdm | 4.64.0 | traitlets | 5.1.1 | Transformadores | 4.25.1 |
| typeguard | 2.13.3 | typer | 0.7.0 | typing_extensions | 4.1.1 |
| ujson | 5.1.0 | unattended-upgrades | 0,1 | urllib3 | 1.26.9 |
| virtualenv | 20.8.0 | Visiones | 0.7.5 | wasabi | 0.10.1 |
| wcwidth | 0.2.5 | codificaciones web | 0.5.1 | cliente de websocket | 0.58.0 |
| Werkzeug | 2.0.3 | ¿Qué es el parche? | 1.0.3 | rueda | 0.37.1 |
| widgetsnbextension | 3.6.1 | envuelto | 1.12.1 | xgboost | 1.7.2 |
| yapf | 0.31.0 | zipp | 3.7.0 |
Bibliotecas de R
Las bibliotecas de R son idénticas a las bibliotecas de R de Databricks Runtime 12.1.
bibliotecas de Java y Scala (clúster de Scala 2.12)
Además de las bibliotecas de Java y Scala en Databricks Runtime 12.1, Databricks Runtime 12.1 ML contiene los siguientes JAR:
Clústeres de CPU
| Identificador de grupo | Id. de artefacto | Versión |
|---|---|---|
| com.typesafe.akka | akka-actor_2.12 | 2.5.23 |
| ml.combust.mleap | mleap-databricks-runtime_2.12 | v0.20.0-db1 |
| ml.dmlc | xgboost4j-spark_2.12 | 1.6.2 |
| ml.dmlc | xgboost4j_2.12 | 1.6.2 |
| org.graphframes | graphframes_2.12 | 0.8.2-db1-spark3.2 |
| org.mlflow | mlflow-client | 2.0.1 |
| org.scala-lang.modules | scala-java8-compat_2.12 | 0.8.0 |
| org.tensorflow | spark-tensorflow-connector_2.12 | 1.15.0 |
Clústeres de GPU
| Identificador de grupo | Id. de artefacto | Versión |
|---|---|---|
| com.typesafe.akka | akka-actor_2.12 | 2.5.23 |
| ml.combust.mleap | mleap-databricks-runtime_2.12 | v0.20.0-db1 |
| ml.dmlc | xgboost4j-gpu_2.12 | 1.6.2 |
| ml.dmlc | xgboost4j-spark-gpu_2.12 | 1.6.2 |
| org.graphframes | graphframes_2.12 | 0.8.2-db1-spark3.2 |
| org.mlflow | mlflow-client | 2.0.1 |
| org.scala-lang.modules | scala-java8-compat_2.12 | 0.8.0 |
| org.tensorflow | spark-tensorflow-connector_2.12 | 1.15.0 |