code: def test_from_arrow(ray_start_regular_shared):
      df1 = pd.DataFrame({"one": [1, 2, 3], "two": ["a", "b", "c"]})
      df2 = pd.DataFrame({"one": [4, 5, 6], "two": ["e", "f", "g"]})
      ds = ray.data.from_arrow(
          [pa.Table.from_pandas(df1), pa.Table.from_pandas(df2)]
      )
      values = [(r["one"], r["two"]) for r in ds.take(6)]
      rows = [
          (r.one, r.two) for _, r in pd.concat([df1, df2]).iterrows()
      ]
      assert values == rows
      # Check that metadata fetch is included in stats.
      assert "FromArrow" in ds.stats()
  
      # test from single pyarrow table
      ds = ray.data.from_arrow(pa.Table.from_pandas(df1))
      values = [(r["one"], r["two"]) for r in ds.take(3)]
      rows = [(r.one, r.two) for _, r in df1.iterrows()]
      assert values == rows
      # Check that metadata fetch is included in stats.
      assert "FromArrow" in ds.stats()
  
imports: import os
  from typing import Iterable, List
  import pandas
  import pyarrow
  import pyarrow.parquet
  import pytest
  import torchvision
  from fsspec.implementations.http import HTTPFileSystem
  from fsspec.implementations.local import LocalFileSystem
  import ray
  from ray._private.test_utils import wait_for_condition
  from ray.data._internal.execution.interfaces import TaskContext
  from ray.data.block import Block, BlockAccessor
  from ray.data.datasource import Datasource, DummyOutputDatasource, WriteResult
  from ray.data.datasource.file_meta_provider import _handle_read_os_error
  from ray.data.tests.conftest import *
  from ray.data.tests.mock_http_server import *
  from ray.data.tests.util import extract_values
  from ray.tests.conftest import *
  from ray.types import ObjectRef
label_desc: Use image node_id 2 for calling a global function with example usage: test_from_arrow(ray_start_regular_shared) without return types