code: def test_csv_read_with_column_type_specified(shutdown_only, tmp_path):
      from pyarrow import csv
  
      file_path = os.path.join(tmp_path, "test.csv")
      df = pd.DataFrame({"one": [1, 2, 3e1], "two": ["a", "b", "c"]})
      df.to_csv(file_path, index=False)
  
      # Incorrect to parse scientific notation in int64 as PyArrow represents
      # it as double.
      with pytest.raises(ValueError):
          ray.data.read_csv(
              file_path,
              convert_options=csv.ConvertOptions(
                  column_types={"one": "int64", "two": "string"}
              ),
          ).schema()
  
      # Parsing scientific notation in double should work.
      ds = ray.data.read_csv(
          file_path,
          convert_options=csv.ConvertOptions(
              column_types={"one": "float64", "two": "string"}
          ),
      )
      expected_df = pd.DataFrame(
          {"one": [1.0, 2.0, 30.0], "two": ["a", "b", "c"]}
      )
      assert ds.to_pandas().equals(expected_df)
  
imports: import itertools
  import os
  import shutil
  from functools import partial
  import pandas
  import pyarrow
  import pyarrow.parquet
  import pytest
  from packaging.version import Version
  from pytest_lazyfixture import lazy_fixture
  import ray
  from ray.data.block import BlockAccessor
  from ray.data.datasource import BaseFileMetadataProvider, FastFileMetadataProvider, PartitionStyle, PathPartitionFilter
  from ray.data.datasource.file_based_datasource import FILE_SIZE_FETCH_PARALLELIZATION_THRESHOLD
  from ray.data.datasource.path_util import _unwrap_protocol
  from ray.data.tests.conftest import *
  from ray.data.tests.mock_http_server import *
  from ray.data.tests.test_partitioning import PathPartitionEncoder
  from ray.data.tests.util import Counter
  from ray.tests.conftest import *
label_desc: Use image node_id 17 for calling a global function with example usage: test_csv_read_with_column_type_specified(shutdown_only, tmp_path) without return types