Skip to content

Commit c4cb04e

Browse files
committed
Make Spark scripts more robust: support preview versions and Spark 4 output
1 parent b6b22e1 commit c4cb04e

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

Diff for: images/pyspark-notebook/setup_spark.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,18 @@ def get_latest_spark_version() -> str:
3838
for ref in all_refs
3939
if ref.startswith("spark-") and "incubating" not in ref and "preview" not in ref
4040
]
41+
4142
# Compare versions semantically
42-
latest_version = max(
43-
stable_versions, key=lambda ver: [int(sub_ver) for sub_ver in ver.split(".")]
44-
)
43+
def version_array(ver: str) -> tuple[int, int, int, str]:
44+
# 3.5.3 -> [3, 5, 3, ""]
45+
# 4.0.0-preview2 -> [4, 0, 0, "preview2"]
46+
arr = ver.split(".")
47+
assert len(arr) == 3, arr
48+
major, minor = int(arr[0]), int(arr[1])
49+
patch, _, preview = arr[2].partition("-")
50+
return (major, minor, int(patch), preview)
51+
52+
latest_version = max(stable_versions, key=lambda ver: version_array(ver))
4553
LOGGER.info(f"Latest version: {latest_version}")
4654
return latest_version
4755

Diff for: tagging/taggers.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,12 @@ def tag_value(container: Container) -> str:
122122
SPARK_VERSION_LINE_PREFIX = r" /___/ .__/\_,_/_/ /_/\_\ version"
123123

124124
spark_version = _get_program_version(container, "spark-submit")
125-
version_line = spark_version.split("\n")[4]
126-
assert version_line.startswith(SPARK_VERSION_LINE_PREFIX)
125+
version_line = next(
126+
filter(
127+
lambda line: line.startswith(SPARK_VERSION_LINE_PREFIX),
128+
spark_version.split("\n"),
129+
)
130+
)
127131
return "spark-" + version_line.split(" ")[-1]
128132

129133

0 commit comments

Comments
 (0)