class_docstr: Helper class that processes the job settings.
  
  It validates the job settings and provides default values if necessary.
class_docstr_tok: ["Helper","class","that","processes","the","job","settings",".","It","validates","the","job","settings","and","provides","default","values","if","necessary","."]
docstr: Return the Spark image.
  
  Args:
      session (Session): Boto session.
  
  Returns:
      SageMaker Spark container image uri.
docstr_tok: ["Return","the","Spark","image",".","Args",":","session","(","Session",")",":","Boto","session",".","Returns",":","SageMaker","Spark","container","image","uri","."]
code: def _get_default_spark_image(session):
      """Return the Spark image.
  
      Args:
          session (Session): Boto session.
  
      Returns:
          SageMaker Spark container image uri.
      """
  
      region = session.boto_region_name
  
      py_version = str(sys.version_info[0]) + str(sys.version_info[1])
  
      if py_version not in ["39"]:
          raise ValueError(
              "The SageMaker Spark image for remote job only supports Python version 3.9. "
          )
  
      image_uri = image_uris.retrieve(
          framework=defaults.SPARK_NAME,
          region=region,
          version=DEFAULT_SPARK_VERSION,
          instance_type=None,
          py_version=f"py{py_version}",
          container_version=DEFAULT_SPARK_CONTAINER_VERSION,
      )
  
      return image_uri
  
imports: from __future__ import absolute_import
  import dataclasses
  import os
  import re
  import shutil
  import sys
  import json
  import secrets
  from typing import Callable, Dict, List, Optional, Tuple, Union, TYPE_CHECKING
  from urllib.parse import urlparse
  from io import BytesIO
  from sagemaker.config.config_schema import REMOTE_FUNCTION_ENVIRONMENT_VARIABLES, REMOTE_FUNCTION_IMAGE_URI, REMOTE_FUNCTION_DEPENDENCIES, REMOTE_FUNCTION_PRE_EXECUTION_COMMANDS, REMOTE_FUNCTION_PRE_EXECUTION_SCRIPT, REMOTE_FUNCTION_INCLUDE_LOCAL_WORKDIR, REMOTE_FUNCTION_INSTANCE_TYPE, REMOTE_FUNCTION_JOB_CONDA_ENV, REMOTE_FUNCTION_ROLE_ARN, REMOTE_FUNCTION_S3_ROOT_URI, REMOTE_FUNCTION_S3_KMS_KEY_ID, REMOTE_FUNCTION_VOLUME_KMS_KEY_ID, REMOTE_FUNCTION_TAGS, REMOTE_FUNCTION_VPC_CONFIG_SUBNETS, REMOTE_FUNCTION_VPC_CONFIG_SECURITY_GROUP_IDS, REMOTE_FUNCTION_ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION
  from sagemaker.experiments._run_context import _RunContext
  from sagemaker.experiments.run import Run
  from sagemaker.image_uris import get_base_python_image_uri
  from sagemaker import image_uris
  from sagemaker.remote_function.checkpoint_location import CheckpointLocation
  from sagemaker.session import get_execution_role, _logs_for_job, Session
  from sagemaker.utils import name_from_base, _tmpdir, resolve_value_from_config, format_tags, Tags
  from sagemaker.s3 import s3_path_join, S3Uploader
  from sagemaker import vpc_utils
  from sagemaker.remote_function.core.stored_function import StoredFunction, _SerializedData
  from sagemaker.remote_function.core.pipeline_variables import Context
  from sagemaker.remote_function.runtime_environment.runtime_environment_manager import RuntimeEnvironmentManager, _DependencySettings
  from sagemaker.remote_function import logging_config
  from sagemaker.remote_function.spark_config import SparkConfig
  from sagemaker.spark import defaults
  from sagemaker.remote_function.custom_file_filter import CustomFileFilter, copy_workdir, resolve_custom_file_filter_from_config_file
label_desc: Use image node_id 3 for calling the _JobSettings obj's underlying member method code with example usage: obj._get_default_spark_image(session) and returns: image_uri