MapType()他是一種用來表示mapping key-value 的pair的格式,很類似於python的Dictionary,使用MapType()會強制資料以一個Key-Value的型態做儲存,有一個可以選擇的參數為valueContainsNull:可以將values設為null的意思。
其中很特別的是,裡面的keyType, valueType可以為任意一個DataType的格式,
e.g StringType, IntegerType, ArrayType, MapType, StructType (struct) e.t.c.
MapType()的Dataframe讓我們先來定義一個MapType()吧
MapType(key,value,valueContainsNull)key : key可以是任何type, 包含StringType,IntegerType等等,但不能是Nullvalue : value也可以是任何的Type, 包含StringType,IntegerType等等, 根據最後一個參數決定value是否可以為NullvalueContainsNull : 如果他是True代表value可以為null
from pyspark.sql.types import StringType, MapType
mapCol = MapType(StringType(),StringType(),False)
'''
+---------+---+------------+OUTPUT+---------+---+------------+
MapType(StringType,StringType,false)
+---------+---+------------+OUTPUT+---------+---+------------+
'''
待補 : map_keys(), map_values()