class_docstr: Beam DoFn class that reads from Presto.
  
  Attributes:
    cursor: A prestodb.dbapi.Cursor object that reads records from Presto table.
class_docstr_tok: ["Beam","DoFn","class","that","reads","from","Presto",".","Attributes",":","cursor",":","A","prestodb.dbapi.Cursor","object","that","reads","records","from","Presto","table","."]
docstr: Yields rows from query results.
  
  Args:
    query: A SQL query used to return results from Presto table.
  
  Yields:
    One row from the query result, represented by a list of tuples. Each tuple
    contains information on column name, column data type, data.
docstr_tok: ["Yields","rows","from","query","results",".","Args",":","query",":","A","SQL","query","used","to","return","results","from","Presto","table",".","Yields",":","One","row","from","the","query","result",",","represented","by","a","list","of","tuples",".","Each","tuple","contains","information","on","column","name",",","column","data","type",",","data","."]
code: def process(self, query: str) -> Iterable[Tuple[str, str, Any]]:
      """Yields rows from query results.
  
      Args:
        query: A SQL query used to return results from Presto table.
  
      Yields:
        One row from the query result, represented by a list of tuples. Each tuple
        contains information on column name, column data type, data.
      """
      self.cursor.execute(query)
      rows = self.cursor.fetchall()
      if rows:
          cols = []
          col_types = []
          # Returns a list of (column_name, column_type, None, ...)
          # https://github.com/prestodb/presto-python-client/blob/master/prestodb/dbapi.py#L199
          for metadata in self.cursor.description:
              cols.append(metadata[0])
              col_types.append(metadata[1])
  
          for r in rows:
              yield zip(cols, col_types, r)
  
imports: import datetime
  from typing import Any, Dict, Iterable, Tuple
  import apache_beam
  import prestodb
  import tensorflow
  from tfx.components.example_gen import base_example_gen_executor
  from tfx.examples.custom_components.presto_example_gen.proto import presto_config_pb2
  from tfx.proto import example_gen_pb2
  from tfx.utils import proto_utils
label_desc: Use image node_id 2 for calling the _ReadPrestoDoFn obj's underlying member method code with example usage: obj.process(query) without return types