code: def preprocess_dataset(dataset_id: str):
      print("starting preprocess_dataset")
      from clearml import Dataset
      from pathlib import Path
      import pandas as pd
  
      dataset = Dataset.get(dataset_id=dataset_id)
      local_folder = dataset.get_local_copy()
      df = pd.read_csv(Path(local_folder) / "dataset.csv", header=None)
      # "preprocessing" - adding columns
      df.columns = [
          "age",
          "workclass",
          "fnlwgt",
          "degree",
          "education-yrs",
          "marital-status",
          "occupation",
          "relationship",
          "ethnicity",
          "gender",
          "capital-gain",
          "capital-loss",
          "hours-per-week",
          "native-country",
          "income-cls",
      ]
      df.to_csv(path_or_buf="./dataset.csv", index=False)
  
      # store in a new dataset
      new_dataset = Dataset.create(
          dataset_project=dataset.project,
          dataset_name="{} v2".format(dataset.name),
          parent_datasets=[dataset],
      )
      new_dataset.add_files("./dataset.csv")
      new_dataset.get_logger().report_table(
          title="sample", series="head", table_plot=df.head()
      )
      new_dataset.finalize(auto_upload=True)
  
      print("done preprocess_dataset")
      return new_dataset.id
  
imports: from clearml import PipelineDecorator, Task
label_desc: Use image node_id 2 for calling a global function with example usage: preprocess_dataset(dataset_id) and returns: new_dataset