iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
AI & Data

30天胡搞瞎搞學會pyspark系列 第 14

[ Day 14 ] - Pyspark | 清理 - 特殊資料型態篇 - MapType :

  • 分享至 

  • xImage
  •  

什麼是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.

建立一個Pyspark MapType()的Dataframe

讓我們先來定義一個MapType()

這個function的參數大概是這樣~

MapType(key,value,valueContainsNull)
key : key可以是任何type, 包含StringType,IntegerType等等,但不能是Null
value : value也可以是任何的Type, 包含StringType,IntegerType等等, 根據最後一個參數決定value是否可以為Null
valueContainsNull : 如果他是True代表value可以為null

那實際寫成code會長成什麼樣子呢?

from pyspark.sql.types import StringType, MapType
mapCol = MapType(StringType(),StringType(),False)

'''
+---------+---+------------+OUTPUT+---------+---+------------+
MapType(StringType,StringType,false)
+---------+---+------------+OUTPUT+---------+---+------------+
'''

待補 : map_keys(), map_values()


上一篇
[ Day 13 ] - Pyspark | 清理 - 特殊資料型態篇 - Struct : json
下一篇
[ Day 15 ] - Pyspark | 資料轉換 - Column : withColumn()
系列文
30天胡搞瞎搞學會pyspark30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言