code: def from_pandas(
      pobj: Union[pd.DataFrame, pd.Series, pd.Index]
  ) -> Union[Series, DataFrame, Index]:
      """Create a pandas-on-Spark DataFrame, Series or Index from a pandas DataFrame, Series or Index.
  
      This is similar to Spark's `SparkSession.createDataFrame()` with pandas DataFrame,
      but this also works with pandas Series and picks the index.
  
      Parameters
      ----------
      pobj : pandas.DataFrame or pandas.Series
          pandas DataFrame or Series to read.
  
      Returns
      -------
      Series or DataFrame
          If a pandas Series is passed in, this function returns a pandas-on-Spark Series.
          If a pandas DataFrame is passed in, this function returns a pandas-on-Spark DataFrame.
      """
      if isinstance(pobj, pd.Series):
          return Series(pobj)
      elif isinstance(pobj, pd.DataFrame):
          return DataFrame(pobj)
      elif isinstance(pobj, pd.Index):
          return DataFrame(pd.DataFrame(index=pobj)).index
      else:
          raise TypeError(
              "Unknown data type: {}".format(type(pobj).__name__)
          )
  
imports: from typing import Any, Callable, Dict, List, Optional, Set, Sized, Tuple, Type, Union, cast, no_type_check
  from collections.abc import Iterable
  from datetime import tzinfo
  from functools import reduce
  from io import BytesIO
  import json
  import warnings
  import numpy
  import pandas
  from pandas.api.types import is_datetime64_dtype, is_list_like
  from pandas.tseries.offsets import DateOffset
  import pyarrow
  import pyarrow.parquet
  from pyspark.sql import functions, Column
  from pyspark.sql.functions import pandas_udf
  from pyspark.sql.types import ByteType, ShortType, IntegerType, LongType, FloatType, DoubleType, BooleanType, TimestampType, TimestampNTZType, DecimalType, StringType, DateType, StructType, DataType
  from pyspark.sql.dataframe import DataFrame
  from pyspark import pandas
  from pyspark.pandas._typing import Axis, Dtype, Label, Name
  from pyspark.pandas.base import IndexOpsMixin
  from pyspark.pandas.utils import align_diff_frames, default_session, is_name_like_tuple, is_name_like_value, name_like_string, same_anchor, scol_for, validate_axis, log_advice
  from pyspark.pandas.frame import DataFrame, _reduce_spark_multi
  from pyspark.pandas.internal import InternalFrame, DEFAULT_SERIES_NAME, HIDDEN_COLUMNS, SPARK_INDEX_NAME_FORMAT
  from pyspark.pandas.series import Series, first_series
  from pyspark.pandas.spark.utils import as_nullable_spark_type, force_decimal_precision_scale
  from pyspark.pandas.indexes import Index, DatetimeIndex, TimedeltaIndex
  from pyspark.pandas.indexes.multi import MultiIndex
  from pyspark.sql.utils import get_column_class
label_desc: Use image node_id 1 for calling a global function with example usage: from_pandas(pobj) and returns: Series, DataFrame, DataFrame