code: def generate_random_arrow_table(
      num_columns: int,
      num_datapoints: int,
      seed: int,
      generate_nulls: bool = True,
      values: Optional[np.ndarray] = None,
  ) -> pa.Table:
      columns = [
          generate_random_arrow_array(
              num_datapoints,
              seed + i,
              generate_nulls=generate_nulls,
              values=values,
          )
          for i in range(num_columns)
      ]
      names = [f"col_{i}" for i in range(num_columns)]
      return pa.Table.from_arrays(columns, names=names)
  
imports: import filecmp
  from typing import Any, Dict, Optional
  import numpy
  import pyarrow
  import pytest
  import lightgbm
  from .utils import np_assert_array_equal
label_desc: Use image node_id 4 for calling a global function with example usage: generate_random_arrow_table(num_columns, num_datapoints, seed, generate_nulls, values) and returns: pa