code: def generate_spark_df(dataset_path):
      spark = OrcaContext.get_spark_session()
      schema = StructType(
          [
              StructField("timestamp", TimestampType()),
              StructField("value", FloatType()),
          ]
      )
      df = (
          spark.read.format("csv")
          .schema(schema)
          .option("header", "true")
          .load(dataset_path)
      )
      tsdata_train, _, tsdata_test = XShardsTSDataset.from_sparkdf(
          df,
          dt_col="timestamp",
          target_col=["value"],
          with_split=True,
          val_ratio=0,
          test_ratio=0.1,
      )
      scaler = {"0": StandardScaler()}  # "0" is default id
      for tsdata in [tsdata_train, tsdata_test]:
          tsdata.scale(scaler, fit=tsdata is tsdata_train).roll(
              lookback=100, horizon=1
          )
      return tsdata_train, tsdata_test
  
file_path: BigDL/python/chronos/example/distributed/sparkdf_training_nyc_taxi.py
imports: import requests
  import csv
  import argparse
  from pyspark.sql.types import StructType, StructField, FloatType, TimestampType
  from bigdl.orca.common import init_orca_context, stop_orca_context, OrcaContext
  from bigdl.chronos.data.experimental import XShardsTSDataset
  from bigdl.chronos.forecaster import TCNForecaster
  from bigdl.chronos.metric.forecast_metrics import Evaluator
  import numpy
  from sklearn.preprocessing import StandardScaler
  from urllib.parse import urlparse
  from os.path import exists
  from bigdl.dllib.utils import log4Error
label_desc: Use image node_id 2 for calling a global function with example usage: generate_spark_df(dataset_path) and returns: tsdata_train,  tsdata_test