code: def test_serialize_nested_array_and_map(self):
      d = [Row(lst=[Row(a=1, b="s")], d={"key": Row(c=1.0, d="2")})]
      rdd = self.sc.parallelize(d)
      df = self.spark.createDataFrame(rdd)
      row = df.head()
      self.assertEqual(1, len(row.lst))
      self.assertEqual(1, row.lst[0].a)
      self.assertEqual("2", row.d["key"].d)
  
      lst = df.rdd.map(lambda x: x.lst).first()
      self.assertEqual(1, len(lst))
      self.assertEqual("s", lst[0].b)
  
      d = df.rdd.map(lambda x: x.d).first()
      self.assertEqual(1, len(d))
      self.assertEqual(1.0, d["key"].c)
  
      row = df.rdd.map(lambda x: x.d["key"]).first()
      self.assertEqual(1.0, row.c)
      self.assertEqual("2", row.d)
  
imports: import datetime
  import shutil
  import tempfile
  import time
  from pyspark.sql import Row
  from pyspark.sql.functions import lit
  from pyspark.sql.types import StructType, StructField, DecimalType, BinaryType
  from pyspark.testing.sqlutils import ReusedSQLTestCase, UTCOffsetTimezone
label_desc: Use image node_id 1 for calling the SerdeTestsMixin obj's underlying member method code with example usage: obj.test_serialize_nested_array_and_map() without return types