class_docstr: The class for binary operations of pandas-on-Spark objects with ArrayType.
class_docstr_tok: ["The","class","for","binary","operations","of","pandas-on-Spark","objects","with","ArrayType","."]
code: def add(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex:
      _sanitize_list_like(right)
      if not isinstance(right, IndexOpsMixin) or (
          isinstance(right, IndexOpsMixin)
          and not isinstance(right.spark.data_type, ArrayType)
      ):
          raise TypeError(
              "Concatenation can not be applied to %s and the given type."
              % self.pretty_name
          )
  
      left_type = cast(ArrayType, left.spark.data_type).elementType
      right_type = right.spark.data_type.elementType
  
      if left_type != right_type and not (
          isinstance(left_type, NumericType)
          and isinstance(right_type, NumericType)
      ):
          raise TypeError(
              "Concatenation can only be applied to %s of the same type"
              % self.pretty_name
          )
  
      return column_op(F.concat)(left, right)
  
imports: from typing import Any, Union, cast
  from pandas.api.types import CategoricalDtype
  from pyspark.pandas._typing import Dtype, IndexOpsLike, SeriesOrIndex
  from pyspark.pandas.base import column_op, IndexOpsMixin
  from pyspark.pandas.data_type_ops.base import DataTypeOps, _as_bool_type, _as_categorical_type, _as_other_type, _as_string_type, _sanitize_list_like
  from pyspark.pandas.typedef import pandas_on_spark_type
  from pyspark.sql import functions, Column
  from pyspark.sql.types import ArrayType, BooleanType, NumericType, StringType
label_desc: Use image node_id 2 for calling the ArrayOps obj's underlying member method code with example usage: obj.add(left, right) and returns: column_op