一文詳解DataFrame的組成包含哪些!
DataFrame是一個(gè)二維表結(jié)構(gòu), 那么表格結(jié)構(gòu)就有無(wú)法繞開(kāi)的三個(gè)點(diǎn):
·?行
·?列
·?表結(jié)構(gòu)描述
比如,在MySQL中的一張表:
·?由許多行組成
·?數(shù)據(jù)也被分成多個(gè)列
·?表也有表結(jié)構(gòu)信息(列、列名、列類型、列約束等)
基于這個(gè)前提,DataFrame的組成如下:
在結(jié)構(gòu)層面:
- StructType對(duì)象描述整個(gè)DataFrame的表結(jié)構(gòu)
- StructField對(duì)象描述一個(gè)列的信息
在數(shù)據(jù)層面
- Row對(duì)象記錄一行數(shù)據(jù)
- Column對(duì)象記錄一列數(shù)據(jù)并包含列的信息

如圖, 在表結(jié)構(gòu)層面,DataFrame的表結(jié)構(gòu)由:
StructType描述,如下圖

一個(gè)StructField記錄:列名、列類型、列是否運(yùn)行為空
多個(gè)StructField組成一個(gè)StructType對(duì)象。
一個(gè)StructType對(duì)象可以描述一個(gè)DataFrame:有幾個(gè)列、每個(gè)列的名字和類型、每個(gè)列是否為空
同時(shí),一行數(shù)據(jù)描述為Row對(duì)象,如Row(1, 張三, 11)
一列數(shù)據(jù)描述為Column對(duì)象,Column對(duì)象包含一列數(shù)據(jù)和列的信息。
Row、Column、StructType、StructField的編程我們?cè)诤竺婢幋a階段會(huì)接觸
