code: def _ParquetToExample(  # pylint: disable=invalid-name
      pipeline: beam.Pipeline,
      exec_properties: Dict[str, Any],
      split_pattern: str,
  ) -> beam.pvalue.PCollection:
      """Read Parquet files and transform to TF examples.
  
      Note that each input split will be transformed by this function separately.
  
      Args:
        pipeline: beam pipeline.
        exec_properties: A dict of execution properties.
          - input_base: input dir that contains Parquet data.
        split_pattern: Split.pattern in Input config, glob relative file pattern
          that maps to input files with root directory given by input_base.
  
      Returns:
        PCollection of TF examples.
      """
      input_base_uri = exec_properties[
          standard_component_specs.INPUT_BASE_KEY
      ]
      parquet_pattern = os.path.join(input_base_uri, split_pattern)
      logging.info(
          "Processing input parquet data %s to TFExample.",
          parquet_pattern,
      )
  
      return (
          pipeline
          # TODO(jyzhao): support per column read by input_config.
          | "ReadFromParquet"
          >> beam.io.ReadFromParquet(parquet_pattern)
          | "ToTFExample" >> beam.Map(utils.dict_to_example)
      )
  
file_path: tfx/tfx/components/example_gen/custom_executors/parquet_executor.py
imports: import os
  from typing import Any, Dict
  from absl import logging
  import apache_beam
  import tensorflow
  from tfx.components.example_gen import utils
  from tfx.components.example_gen.base_example_gen_executor import BaseExampleGenExecutor
  from tfx.types import standard_component_specs
label_desc: Use image node_id 1 for calling a global function with example usage: _ParquetToExample(pipeline, exec_properties, split_pattern) and returns: unknown