code: def run_query(
      bc,
      engine,
      query,
      queryId,
      queryType,
      worder,
      orderBy,
      acceptable_difference,
      use_percentage,
      input_type,
      **kwargs,
  ):
      result_gdf = bc.sql(query)
  
      filename = str("TPCH").upper() + "-" + str(queryId) + ".parquet"
  
      result_file = (
          file_results_dir + "/" + str(engine) + "/" + filename
      )
  
      pdf2 = pd.read_parquet(result_file)
  
      stringResult = ""
  
      if result_gdf is not None:
          if result_gdf.columns is not None:
              import dask_cudf
  
              if type(result_gdf) is dask_cudf.core.DataFrame:
                  result_gdf = result_gdf.compute()
  
              expected_dtypes = result_gdf.dtypes.to_list()
  
              pdf = (
                  upcast_to_float(result_gdf)
                  .fillna(get_null_constants(result_gdf))
                  .to_pandas()
              )
  
              if worder == 1 and pdf.size != 0:
                  pdf.sort_values(
                      [orderBy] if orderBy else pdf.columns.to_list(),
                      inplace=True,
                  )
  
              stringResult = print_query_results(
                  pdf,
                  pdf2,
                  acceptable_difference,
                  use_percentage,
                  engine,
              )
  
      return stringResult
  
imports: from blazingsql import BlazingContext
  from blazingsql import DataType, S3EncryptionType
  import numpy
  import pandas
  import os
  import subprocess
  import sys
  from EndToEndTests import tpchQueries
label_desc: Use image node_id 5 for calling a global function with example usage: run_query(bc, engine, query, queryId, queryType, worder, orderBy, acceptable_difference, use_percentage, input_type) and returns: stringResult