code: def equalize_helper(input_block_lists):
      result = _equalize(
          [
              _create_blocklist(block_list)
              for block_list in input_block_lists
          ],
          owned_by_consumer=True,
      )
      result_block_lists = []
      for blocklist in result:
          block_list = []
          for block_ref, _ in blocklist.get_blocks_with_metadata():
              block = ray.get(block_ref)
              block_accessor = BlockAccessor.for_block(block)
              block_list.append(list(block_accessor.to_default()["id"]))
          result_block_lists.append(block_list)
      return result_block_lists
  
imports: import itertools
  import math
  import random
  import time
  from unittest.mock import patch
  import numpy
  import pandas
  import pytest
  import ray
  from ray.data._internal.block_list import BlockList
  from ray.data._internal.equalize import _equalize
  from ray.data._internal.execution.interfaces import RefBundle
  from ray.data._internal.logical.interfaces import LogicalPlan
  from ray.data._internal.logical.operators.input_data_operator import InputData
  from ray.data._internal.plan import ExecutionPlan
  from ray.data._internal.split import _drop_empty_block_split, _generate_global_split_results, _generate_per_block_split_indices, _generate_valid_indices, _split_at_indices, _split_single_block
  from ray.data._internal.stats import DatasetStats
  from ray.data.block import BlockAccessor, BlockMetadata
  from ray.data.dataset import Dataset
  from ray.data.tests.conftest import *
  from ray.data.tests.util import extract_values
  from ray.tests.conftest import *
label_desc: Use image node_id 23 for calling a global function with example usage: equalize_helper(input_block_lists) and returns: result_block_lists