code: def broadcast(obj: DataFrame) -> DataFrame:
      """
      Marks a DataFrame as small enough for use in broadcast joins.
  
      .. deprecated:: 3.2.0
          Use :func:`DataFrame.spark.hint` instead.
  
      Parameters
      ----------
      obj : DataFrame
  
      Returns
      -------
      ret : DataFrame with broadcast hint.
  
      See Also
      --------
      DataFrame.merge : Merge DataFrame objects with a database-style join.
      DataFrame.join : Join columns of another DataFrame.
      DataFrame.update : Modify in place using non-NA values from another DataFrame.
      DataFrame.hint : Specifies some hint on the current DataFrame.
  
      Examples
      --------
      >>> df1 = ps.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],
      ...                     'value': [1, 2, 3, 5]},
      ...                    columns=['lkey', 'value']).set_index('lkey')
      >>> df2 = ps.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'],
      ...                     'value': [5, 6, 7, 8]},
      ...                    columns=['rkey', 'value']).set_index('rkey')
      >>> merged = df1.merge(ps.broadcast(df2), left_index=True, right_index=True)
      >>> merged.spark.explain()  # doctest: +ELLIPSIS
      == Physical Plan ==
      ...
      ...BroadcastHashJoin...
      ...
      """
      warnings.warn(
          "`broadcast` has been deprecated and might be removed in a future version. "
          "Use `DataFrame.spark.hint` with 'broadcast' for `name` parameter instead.",
          FutureWarning,
      )
      if not isinstance(obj, DataFrame):
          raise TypeError(
              "Invalid type : expected DataFrame got {}".format(
                  type(obj).__name__
              )
          )
      return DataFrame(
          obj._internal.with_new_sdf(
              F.broadcast(obj._internal.resolved_copy.spark_frame)
          )
      )
  
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 27 for calling a global function with example usage: broadcast(obj) and returns: DataFrame