code: def test_getitem_column(self):
      mapping = {"A": "20", "B": "28", "C": "34"}
      mapping_expr = sf.create_map(
          [sf.lit(x) for x in chain(*mapping.items())]
      )
      df = self.spark.createDataFrame(
          data=[["A", "10"], ["B", "14"], ["C", "17"]],
          schema=["key", "value"],
      ).withColumn("square_value", mapping_expr[sf.col("key")])
      self.assertEqual(df.count(), 3)
  
imports: from itertools import chain
  from pyspark.sql import Column, Row
  from pyspark.sql import functions
  from pyspark.sql.types import StructType, StructField, LongType
  from pyspark.errors import AnalysisException, PySparkTypeError, PySparkValueError
  from pyspark.testing.sqlutils import ReusedSQLTestCase
label_desc: Use image node_id 13 for calling the ColumnTestsMixin obj's underlying member method code with example usage: obj.test_getitem_column() without return types