code: def test_autologging_dedups_multiple_reads_of_same_datasource(
      spark_session, format_to_file_path
  ):
      mlflow.spark.autolog()
      data_format = list(format_to_file_path.keys())[0]
      file_path = format_to_file_path[data_format]
      df = (
          spark_session.read.format(data_format)
          .option("header", "true")
          .option("inferSchema", "true")
          .load(file_path)
      )
      with mlflow.start_run():
          run_id = mlflow.active_run().info.run_id
          df.collect()
          df.filter("number1 > 0").collect()
          df.limit(2).collect()
          df.collect()
          time.sleep(1)
      run = mlflow.get_run(run_id)
      _assert_spark_data_logged(
          run=run, path=file_path, data_format=data_format
      )
      # Test context provider flow
      df.filter("number1 > 0").collect()
      df.limit(2).collect()
      df.collect()
      with mlflow.start_run():
          run_id2 = mlflow.active_run().info.run_id
      time.sleep(1)
      run2 = mlflow.get_run(run_id2)
      _assert_spark_data_logged(
          run=run2, path=file_path, data_format=data_format
      )
  
file_path: mlflow/tests/spark/autologging/datasource/test_spark_datasource_autologging.py
imports: import time
  from unittest import mock
  from pyspark.sql import Row
  from pyspark.sql.types import IntegerType, StructField, StructType
  import mlflow
  import mlflow.spark
  from mlflow._spark_autologging import _SPARK_TABLE_INFO_TAG_NAME
  from mlflow.utils.validation import MAX_TAG_VAL_LENGTH
  from tests.spark.autologging.utils import _assert_spark_data_logged
  from tests.tracking.integration_test_utils import _init_server
label_desc: Use image node_id 4 for calling a global function with example usage: test_autologging_dedups_multiple_reads_of_same_datasource(spark_session, format_to_file_path) without return types