Skip to content
All writing Part 02 of 09 · [object Object]
Engineering · 1 min read

Spark 資料型別:基本、巢狀,以及 struct 與 map

Spark SQL 常見資料型別:string、long、double、decimal(20,0)、binary、timestamp,以及巢狀的 array、map、struct,還有 struct 與 map 的差別。

先整理出目前實務專案裡最常碰到的幾組:

string
integer
array
struct
long
boolean
double
map
binary
float
decimal(20,0)
timestamp
date

常見型別

型別Spark SQL 名稱說明
stringSTRING / StringType變長 Unicode 文字
integerINT / IntegerType4-byte 有號整數
longBIGINT / LongType8-byte 有號整數
booleanBOOLEAN / BooleanTypetrue / false
doubleDOUBLE / DoubleType8-byte IEEE 754 雙精度浮點
floatFLOAT / FloatType4-byte 單精度浮點
decimal(20,0)DECIMAL(20,0)20 位精確數字、小數 0 位(等於精確的 20 位整數),適合財務/精確數值
timestampTIMESTAMP / TimestampType日期+時間,微秒精度,通常為 UTC
dateDATE / DateType只有年月日
binaryBINARY / BinaryType變長 byte array(原始二進位)

巢狀型別

型別Spark SQL 名稱說明
arrayARRAY<T>有序列表,所有元素同型別 T
mapMAP<K,V>key-value 對;所有 key 同型別、所有 value 同型別
structSTRUCT<...>命名欄位的複合紀錄,各欄位有自己的型別;各 key-value 可以有自己型別;相對 map 彈性(子集)

參考來源

Related: 回到跨引擎資料庫查詢總覽,或接著看 Spark 陣列函式與 collect

Tags #spark #databases
// connect

Be brave | Be wise | Be grateful

21 BreakinCode

// elsewhere
LinkedInMedium (lang: en)Youtube
wh:~$William Hung· © 2026 Taipei · GMT+8 · Available for collaboration