code: def test_stage_scheduling_2_cpus_3_gpus_per_task(self):
      rp = (
          ResourceProfileBuilder()
          .require(TaskResourceRequests().cpus(2).resource("gpu", 3))
          .build
      )
      self._test_stage_scheduling(
          cpus_per_worker=4,
          gpus_per_worker=4,
          num_tasks=2,
          resource_profile=rp,
          expected_max_concurrent_tasks=1,
      )
  
file_path: spark/python/pyspark/tests/test_stage_sched.py
imports: import os
  import tempfile
  import unittest
  import time
  import shutil
  import json
  from pyspark import SparkConf, SparkContext
  from pyspark.resource.profile import ResourceProfileBuilder
  from pyspark.resource.requests import TaskResourceRequests
  from pyspark.taskcontext import TaskContext
label_desc: Use image node_id 7 for calling the StageSchedulingTest obj's underlying member method code with example usage: obj.test_stage_scheduling_2_cpus_3_gpus_per_task() without return types