code: def spark_column_equals(left: Column, right: Column) -> bool:
      """
      Check both `left` and `right` have the same expressions.
  
      >>> spark_column_equals(sf.lit(0), sf.lit(0))
      True
      >>> spark_column_equals(sf.lit(0) + 1, sf.lit(0) + 1)
      True
      >>> spark_column_equals(sf.lit(0) + 1, sf.lit(0) + 2)
      False
      >>> sdf1 = ps.DataFrame({"x": ['a', 'b', 'c']}).to_spark()
      >>> spark_column_equals(sdf1["x"] + 1, sdf1["x"] + 1)
      True
      >>> sdf2 = ps.DataFrame({"x": ['a', 'b', 'c']}).to_spark()
      >>> spark_column_equals(sdf1["x"] + 1, sdf2["x"] + 1)
      False
      """
      if is_remote():
          from pyspark.sql.connect.column import Column as ConnectColumn
  
          if not isinstance(left, ConnectColumn):
              raise PySparkTypeError(
                  error_class="NOT_COLUMN",
                  message_parameters={
                      "arg_name": "left",
                      "arg_type": type(left).__name__,
                  },
              )
          if not isinstance(right, ConnectColumn):
              raise PySparkTypeError(
                  error_class="NOT_COLUMN",
                  message_parameters={
                      "arg_name": "right",
                      "arg_type": type(right).__name__,
                  },
              )
          return repr(left).replace("`", "") == repr(right).replace(
              "`", ""
          )
      else:
          return left._jc.equals(right._jc)
  
imports: import functools
  from contextlib import contextmanager
  import os
  from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Union, TYPE_CHECKING, cast, no_type_check, overload
  import warnings
  import pandas
  from pandas.api.types import is_list_like
  from pyspark.sql import functions, Column, DataFrame, SparkSession
  from pyspark.sql.types import DoubleType
  from pyspark.sql.utils import is_remote, get_dataframe_class
  from pyspark.errors import PySparkTypeError
  from pyspark import pandas
  from pyspark.pandas._typing import Axis, Label, Name, DataFrameOrSeries
  from pyspark.pandas.typedef.typehints import as_spark_type
label_desc: Use image node_id 21 for calling a global function with example usage: spark_column_equals(left, right) and returns: unknown, left