code: def dataframe_transformer(
      ctx,
      role: Role,
      table: cpn.table_input(roles=[LOCAL, GUEST, HOST]),
      dataframe_output: cpn.dataframe_output(
          roles=[LOCAL, GUEST, HOST]
      ),
      namespace: cpn.parameter(type=str, default=None, optional=True),
      name: cpn.parameter(type=str, default=None, optional=True),
      site_name: cpn.parameter(type=str, default=None, optional=True),
  ):
      from fate.arch.dataframe import TableReader
  
      table = table.read()
      metadata = table.schema
      table_reader = TableReader(
          sample_id_name=metadata.get("sample_id_name", None),
          match_id_name=metadata.get("match_id_name", None),
          match_id_list=metadata.get("match_id_list", None),
          match_id_range=metadata.get("match_id_range", 1),
          label_name=metadata.get("label_name", None),
          label_type=metadata.get("label_type", "int32"),
          weight_name=metadata.get("weight_name", None),
          weight_type=metadata.get("weight_type", "float32"),
          header=metadata.get("header", None),
          na_values=metadata.get("na_values", None),
          dtype=metadata.get("dtype", "float32"),
          anonymous_site_name=site_name,
          delimiter=metadata.get("delimiter", ","),
          input_format=metadata.get("input_format", "dense"),
          tag_with_value=metadata.get("tag_with_value", False),
          tag_value_delimiter=metadata.get("tag_value_delimiter", ":"),
      )
  
      df = table_reader.to_frame(ctx, table)
      dataframe_output.write(df, name=name, namespace=namespace)
  
label_desc: Use image node_id 1 for calling a global function with example usage: dataframe_transformer(ctx, role, table, dataframe_output, namespace, name, site_name) without return types