+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+
|Test Case                                                                             |Spark Type                                                                            |Spark Value                                                                           |Python Type                                                                           |Python Value                                                                          |
+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+
|byte_values                                                                           |tinyint                                                                               |[-128, 127, 0]                                                                        |['int', 'int', 'int']                                                                 |['-128', '127', '0']                                                                  |
|byte_null                                                                             |tinyint                                                                               |[None, 42]                                                                            |['NoneType', 'int']                                                                   |['None', '42']                                                                        |
|short_values                                                                          |smallint                                                                              |[-32768, 32767, 0]                                                                    |['int', 'int', 'int']                                                                 |['-32768', '32767', '0']                                                              |
|short_null                                                                            |smallint                                                                              |[None, 123]                                                                           |['NoneType', 'int']                                                                   |['None', '123']                                                                       |
|int_values                                                                            |int                                                                                   |[-2147483648, 2147483647, 0]                                                          |['int', 'int', 'int']                                                                 |['-2147483648', '2147483647', '0']                                                    |
|int_null                                                                              |int                                                                                   |[None, 456]                                                                           |['NoneType', 'int']                                                                   |['None', '456']                                                                       |
|long_values                                                                           |bigint                                                                                |[-9223372036854775808, 9223372036854775807, 0]                                        |['int', 'int', 'int']                                                                 |['-9223372036854775808', '9223372036854775807', '0']                                  |
|long_null                                                                             |bigint                                                                                |[None, 789]                                                                           |['NoneType', 'int']                                                                   |['None', '789']                                                                       |
|float_values                                                                          |float                                                                                 |[0.0, 1.0, 3.140000104904175]                                                         |['float', 'float', 'float']                                                           |['0.0', '1.0', '3.140000104904175']                                                   |
|float_null                                                                            |float                                                                                 |[None, 3.140000104904175]                                                             |['NoneType', 'float']                                                                 |['None', '3.140000104904175']                                                         |
|double_values                                                                         |double                                                                                |[0.0, 1.0, 0.3333333333333333]                                                        |['float', 'float', 'float']                                                           |['0.0', '1.0', '0.3333333333333333']                                                  |
|double_null                                                                           |double                                                                                |[None, 2.71]                                                                          |['NoneType', 'float']                                                                 |['None', '2.71']                                                                      |
|decimal_values                                                                        |decimal(3,2)                                                                          |[Decimal('5.35'), Decimal('1.23')]                                                    |['Decimal', 'Decimal']                                                                |['5.35', '1.23']                                                                      |
|decimal_null                                                                          |decimal(3,2)                                                                          |[None, Decimal('9.99')]                                                               |['NoneType', 'Decimal']                                                               |['None', '9.99']                                                                      |
|string_values                                                                         |string                                                                                |['abc', '', 'hello']                                                                  |['str', 'str', 'str']                                                                 |['abc', '', 'hello']                                                                  |
|string_null                                                                           |string                                                                                |[None, 'test']                                                                        |['NoneType', 'str']                                                                   |['None', 'test']                                                                      |
|binary_values                                                                         |binary                                                                                |[bytearray(b'abc'), bytearray(b''), bytearray(b'ABC')]                                |['bytearray', 'bytearray', 'bytearray']                                               |["bytearray(b'abc')", "bytearray(b'')", "bytearray(b'ABC')"]                          |
|binary_null                                                                           |binary                                                                                |[None, bytearray(b'test')]                                                            |['NoneType', 'bytearray']                                                             |['None', "bytearray(b'test')"]                                                        |
|boolean_values                                                                        |boolean                                                                               |[True, False]                                                                         |['bool', 'bool']                                                                      |['True', 'False']                                                                     |
|boolean_null                                                                          |boolean                                                                               |[None, True]                                                                          |['NoneType', 'bool']                                                                  |['None', 'True']                                                                      |
|date_values                                                                           |date                                                                                  |[datetime.date(2020, 2, 2), datetime.date(1970, 1, 1)]                                |['date', 'date']                                                                      |['2020-02-02', '1970-01-01']                                                          |
|date_null                                                                             |date                                                                                  |[None, datetime.date(2023, 1, 1)]                                                     |['NoneType', 'date']                                                                  |['None', '2023-01-01']                                                                |
|timestamp_values                                                                      |timestamp                                                                             |[datetime.datetime(2020, 2, 2, 12, 15, 16, 123000)]                                   |['datetime']                                                                          |['2020-02-02 12:15:16.123000']                                                        |
|timestamp_null                                                                        |timestamp                                                                             |[None, datetime.datetime(2023, 1, 1, 12, 0)]                                          |['NoneType', 'datetime']                                                              |['None', '2023-01-01 12:00:00']                                                       |
|array_int_values                                                                      |array<int>                                                                            |[[1, 2, 3], [], [1, None, 3]]                                                         |['list', 'list', 'list']                                                              |['[1, 2, 3]', '[]', '[1, None, 3]']                                                   |
|array_int_null                                                                        |array<int>                                                                            |[None, [4, 5, 6]]                                                                     |['NoneType', 'list']                                                                  |['None', '[4, 5, 6]']                                                                 |
|map_str_int_values                                                                    |map<string,int>                                                                       |[{'world': 2, 'hello': 1}, {}]                                                        |['dict', 'dict']                                                                      |["{'world': 2, 'hello': 1}", '{}']                                                    |
|map_str_int_null                                                                      |map<string,int>                                                                       |[None, {'test': 123}]                                                                 |['NoneType', 'dict']                                                                  |['None', "{'test': 123}"]                                                             |
|struct_int_str_values                                                                 |struct<a1:int,a2:string>                                                              |[Row(a1=1, a2='hello'), Row(a1=2, a2='world')]                                        |['Row', 'Row']                                                                        |["Row(a1=1, a2='hello')", "Row(a1=2, a2='world')"]                                    |
|struct_int_str_null                                                                   |struct<a1:int,a2:string>                                                              |[None, Row(a1=99, a2='test')]                                                         |['NoneType', 'Row']                                                                   |['None', "Row(a1=99, a2='test')"]                                                     |
|array_array_int                                                                       |array<array<int>>                                                                     |[[[1, 2, 3]], [[1], [2, 3]]]                                                          |['list', 'list']                                                                      |['[[1, 2, 3]]', '[[1], [2, 3]]']                                                      |
|array_map_str_int                                                                     |array<map<string,int>>                                                                |[[{'world': 2, 'hello': 1}], [{'a': 1}, {'b': 2}]]                                    |['list', 'list']                                                                      |["[{'world': 2, 'hello': 1}]", "[{'a': 1}, {'b': 2}]"]                                |
|array_struct_int_str                                                                  |array<struct<a1:int,a2:string>>                                                       |[[Row(a1=1, a2='hello')], [Row(a1=1, a2='hello'), Row(a1=2, a2='world')]]             |['list', 'list']                                                                      |["[Row(a1=1, a2='hello')]", "[Row(a1=1, a2='hello'), Row(a1=2, a2='world')]"]         |
|map_int_array_int                                                                     |map<int,array<int>>                                                                   |[{1: [1, 2, 3]}, {1: [1], 2: [2, 3]}]                                                 |['dict', 'dict']                                                                      |['{1: [1, 2, 3]}', '{1: [1], 2: [2, 3]}']                                             |
|map_int_map_str_int                                                                   |map<int,map<string,int>>                                                              |[{1: {'world': 2, 'hello': 1}}]                                                       |['dict']                                                                              |["{1: {'world': 2, 'hello': 1}}"]                                                     |
|map_int_struct_int_str                                                                |map<int,struct<a1:int,a2:string>>                                                     |[{1: Row(a1=1, a2='hello')}]                                                          |['dict']                                                                              |["{1: Row(a1=1, a2='hello')}"]                                                        |
|struct_int_array_int                                                                  |struct<a:int,b:array<int>>                                                            |[Row(a=1, b=[1, 2, 3])]                                                               |['Row']                                                                               |['Row(a=1, b=[1, 2, 3])']                                                             |
|struct_int_map_str_int                                                                |struct<a:int,b:map<string,int>>                                                       |[Row(a=1, b={'world': 2, 'hello': 1})]                                                |['Row']                                                                               |["Row(a=1, b={'world': 2, 'hello': 1})"]                                              |
|struct_int_struct_int_str                                                             |struct<a:int,b:struct<a1:int,a2:string>>                                              |[Row(a=1, b=Row(a1=1, a2='hello'))]                                                   |['Row']                                                                               |["Row(a=1, b=Row(a1=1, a2='hello'))"]                                                 |
+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+