code: def fetch_query(self, query: str, schema: pa.Schema) -> pa.Table:
      self.logger.info(f"Snowflake Query:\n{query}\n")
      if self._verbose:
          print(f"Snowflake Query:\n{query}\n")
  
      sp_df = self._session.sql(query)
      batches = []
      for pd_batch in sp_df.to_pandas_batches():
          pa_tbl = to_arrow_table(pd_batch).cast(schema, safe=False)
          batches.extend(pa_tbl.to_batches())
  
      return pa.Table.from_batches(batches, schema)
  
file_path: vegafusion/python/vegafusion/vegafusion/dataset/snowpark.py
imports: import logging
  import pyarrow
  from .sql import SqlDataset
  from snowflake.snowpark import Table
  from snowflake.snowpark.types import DataType
  from typing import Dict
  from ..transformer import to_arrow_table
label_desc: Use image node_id 5 for calling the SnowparkDataset obj's underlying member method code with example usage: obj.fetch_query(query, schema) and returns: pa