code: def data_processing(args):
      print("Checking dataset...")
      train_file = args.data_location + "/train.csv"
      test_file = args.data_location + "/eval.csv"
      if (not os.path.exists(train_file)) or (
          not os.path.exists(test_file)
      ):
          invalidInputError(
              False,
              "Dataset does not exist in the given data_location.",
          )
  
      train_tbl = FeatureTable.read_csv(
          train_file, names=TRAIN_DATA_COLUMNS
      )
      test_tbl = FeatureTable.read_csv(
          test_file, names=TRAIN_DATA_COLUMNS
      )
  
      no_of_training_examples = train_tbl.size()
      no_of_test_examples = test_tbl.size()
      print(
          "The size of the training dataset is {}".format(
              no_of_training_examples
          )
      )
      print(
          "The size of the test dataset is {}".format(
              no_of_test_examples
          )
      )
  
      # set batch size, epoch & steps
      batch_size = (
          math.ceil(args.batch_size / args.micro_batch)
          if args.micro_batch and not args.tf
          else args.batch_size
      )
  
      if args.steps == 0:
          no_of_epochs = 1
          train_steps = math.ceil(
              (float(no_of_epochs) * no_of_training_examples)
              / batch_size
          )
      else:
          no_of_epochs = math.ceil(
              (float(batch_size) * args.steps) / no_of_training_examples
          )
          train_steps = args.steps
      test_steps = math.ceil(float(no_of_test_examples) / batch_size)
      print("The training steps is {}".format(train_steps))
      print("The test steps is {}".format(test_steps))
  
      # set directory path for checkpoint_dir
      model_dir = os.path.join(
          args.output_dir,
          "model_WIDE_AND_DEEP_" + str(int(time.time())),
      )
      checkpoint_dir = args.checkpoint if args.checkpoint else model_dir
      print("Saving model checkpoints to " + checkpoint_dir)
      params = {
          "checkpoint_dir": checkpoint_dir,
          "train_steps": train_steps,
          # 'test_steps': test_steps,
          "batch_size": batch_size,
          "no_of_epochs": no_of_epochs,
      }
  
      # Preprocessing
      train_tbl = train_tbl.hash_encode(
          columns=CATEGORICAL_COLUMNS, bins=10000
      )
      test_tbl = test_tbl.hash_encode(
          columns=CATEGORICAL_COLUMNS, bins=10000
      )
      # Category encode results in a larger vocabulary and will make model larger
      # train_tbl, indices = train_tbl.category_encode(columns=CATEGORICAL_COLUMNS, freq_limit=10)
      # test_tbl = test_tbl.encode_string(columns=CATEGORICAL_COLUMNS, indices=indices)
  
      train_tbl = train_tbl.fillna(0.0, CONTINUOUS_COLUMNS)
      train_tbl = train_tbl.fillna(0, CATEGORICAL_COLUMNS)
      test_tbl = test_tbl.fillna(0.0, CONTINUOUS_COLUMNS)
      test_tbl = test_tbl.fillna(0, CATEGORICAL_COLUMNS)
  
      return train_tbl.df, test_tbl.df, params
  
imports: import time
  import argparse
  import tensorflow
  import os
  import sys
  import math
  import collections
  from tensorflow.python.client import timeline
  import json
  from tensorflow.python.ops import partitioned_variables
  import ray
  from bigdl.dllib.utils.log4Error import *
  from bigdl.orca import init_orca_context, stop_orca_context, OrcaContext
  from bigdl.orca.data.utils import process_spark_xshards
  from bigdl.orca.learn.utils import maybe_dataframe_to_xshards
  from bigdl.friesian.feature import FeatureTable
label_desc: Use image node_id 11 for calling a global function with example usage: data_processing(args) and returns: train_tbl,  test_tbl,  params