Update databricks 17.3 [skip ci]#1017
Conversation
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
Databricks 17.3 ML LTS already natively provisions a highly optimized CUDA 12.6 environment, meaning the script causes an unstable driver/toolkit regression. Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
Greptile SummaryThis PR updates the Databricks notebook setup from DBR 13.3 LTS to 17.3 LTS, upgrading the Spark/Scala artifact suffix from
Confidence Score: 4/5Safe to merge for the runtime upgrade and CUDA removal; the pip RAPIDS packages are pinned to 25.12.0 while the in-script comment examples reference 26.4.0, which an earlier review round already flagged as potentially stale. The JAR artifact, PYTHONPATH, and Scala suffix are all consistently updated to 26.04.2 / _2.13. The CUDA removal is intentional and correctly documented. The one remaining open question — whether RAPIDS_VERSION=25.12.0 is the deliberate, verified-compatible version for DBR 17.3 or an oversight — was raised in a prior review cycle and has not yet been explicitly confirmed or corrected by the author. notebooks/databricks/init-pip-cuda-12.sh — specifically the RAPIDS_VERSION value and whether it matches the intended RAPIDS Python package version for DBR 17.3. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Cluster node starts\nDBR 17.3 LTS ML GPU] --> B[init-pip-cuda-12.sh runs]
B --> C[curl: download rapids-4-spark_2.13-26.04.2-cuda12.jar\n→ /databricks/jars/]
C --> D[pip upgrade]
D --> E[pip install cudf-cu12~=25.12.0\ncuml-cu12~=25.12.0\ncuvs-cu12~=25.12.0\npylibraft-cu12~=25.12.0\nraft-dask-cu12~=25.12.0\nnumpy~=1.0]
E --> F[pip install spark-rapids-ml]
F --> G{SPARK_RAPIDS_ML_NO_IMPORT_ENABLED == 1?}
G -->|Yes| H[Write IPython startup\nscript for no-import-change UX]
G -->|No| I[Done]
H --> I
J[Spark Executor starts] --> K[PYTHONPATH includes\n/databricks/jars/rapids-4-spark_2.13-26.04.2.jar]
K --> L[SQLPlugin loaded\nGPU acceleration active]
Reviews (7): Last reviewed commit: "Syncing appropriate rapids and spark_rap..." | Re-trigger Greptile |
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
eordentlich
left a comment
There was a problem hiding this comment.
Thanks for this update. I will test it out.
A couple of minor comments.
| # | ||
| # Note also that sometimes the jar and python packages will have different patch versions published and available at any time, | ||
| # so the versions may not perfectly align. This is expected and should not cause issues. | ||
| RAPIDS_VERSION=26.4.0 |
There was a problem hiding this comment.
I think we need to keep this at 25.12.0 for now, till we do an update to match cuML changes. This is forthcoming for 26.6.0.
The Spark rapids version bump is fine.
There was a problem hiding this comment.
Please update copyright date to 2026 while you are changing this file.
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
| # Note also that sometimes the jar and python packages will have different patch versions published and available at any time, | ||
| # so the versions may not perfectly align. This is expected and should not cause issues. | ||
| RAPIDS_VERSION=25.12.0 | ||
| SPARK_RAPIDS_VERSION=25.12.0 |
There was a problem hiding this comment.
Looks like my previous comment might have been a bit confusing. Please keep SPARK_RAPIDS_VERSION=26.04.2 (and RAPIDS_VERSION=25.12.0 - ok to mismatch here as they are completely disjoint packages). It seems the 25.12.0 for Spark Rapids is technically not fully compatible with DB 17.3 per the release notes .
There was a problem hiding this comment.
And also sync the version in the jar name in the README.
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
| spark.databricks.delta.preview.enabled true | ||
| spark.python.worker.reuse true | ||
| spark.executorEnv.PYTHONPATH /databricks/jars/rapids-4-spark_2.12-25.12.0.jar:/databricks/spark/python | ||
| spark.executorEnv.PYTHONPATH /databricks/jars/rapids-4-spark_2.13-26.4.2.jar:/databricks/spark/python |
There was a problem hiding this comment.
The PYTHONPATH in the README references
rapids-4-spark_2.13-26.4.2.jar (no leading zero), but the init script sets SPARK_RAPIDS_VERSION=26.04.2 and downloads the jar to /databricks/jars/rapids-4-spark_2.13-26.04.2.jar (with leading zero). The comment in the script even documents this convention: "SPARK_RAPIDS_VERSION (jar) should have leading 0 in month/minor (e.g. 26.04.2 and not 26.4.2)". At runtime, Spark executors will fail to start because the PYTHONPATH points to a file that was never written to disk.
| spark.executorEnv.PYTHONPATH /databricks/jars/rapids-4-spark_2.13-26.4.2.jar:/databricks/spark/python | |
| spark.executorEnv.PYTHONPATH /databricks/jars/rapids-4-spark_2.13-26.04.2.jar:/databricks/spark/python |
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
eordentlich
left a comment
There was a problem hiding this comment.
one more iteration.
Signed-off-by: Murray Todd Williams <murray.williams@lovelytics.com>
|
build |
eordentlich
left a comment
There was a problem hiding this comment.
Looks good. I tried it out and it worked.
Thanks!
Databricks just sent an automated email this morning warning me that my cluster that uses Spark Rapids ML was using a Databricks LTS runtime (13.3 LTS ML) that would go end-of-life this August. That means, in a few months, new users will not be able to follow these instructions.
Rectifying this was relatively straightforward in terms of getting the new Spark 4 and Scala 2.13 dependencies sussed out and updating to the newest 26.04.2 build.
Also note that the manual CUDA installation is no longer necessary and would in fact create a regression. For simplicity, that was removed.