code: def featuretable_to_xshards(
      tbl: "SparkDataFrame",
      convert_cols: Optional[Union[List[str], str]] = None,
  ):
      from bigdl.orca.learn.utils import (
          dataframe_to_xshards_of_feature_dict,
      )
  
      # TODO: partition < node num
      if convert_cols is None:
          convert_cols = tbl.columns
      if convert_cols and not isinstance(convert_cols, list):
          convert_cols = [convert_cols]
      return dataframe_to_xshards_of_feature_dict(
          tbl.df, convert_cols, accept_str_col=True
      )
  
imports: from bigdl.dllib.utils.file_utils import callZooFunc
  from pyspark.sql.types import IntegerType, ShortType, LongType, FloatType, DecimalType, DoubleType, BooleanType
  from pyspark.sql.functions import broadcast, udf
  from bigdl.dllib.utils.log4Error import *
  import warnings
  from bigdl.dllib.utils.log4Error import *
  from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Union
label_desc: Use image node_id 25 for calling a global function with example usage: featuretable_to_xshards(tbl, convert_cols) and returns: dataframe_to_xshards_of_feature_dict