# Spark SQL數據類型
- 數字類型
- ByteType:代表一個字節的整數。范圍是-128到127
- ShortType:代表兩個字節的整數。范圍是-32768到32767
- IntegerType:代表4個字節的整數。范圍是-2147483648到2147483647
- LongType:代表8個字節的整數。范圍是-9223372036854775808到9223372036854775807
- FloatType:代表4字節的單精度浮點數
- DoubleType:代表8字節的雙精度浮點數
- DecimalType:代表任意精度的10進制數據。通過內部的java.math.BigDecimal支持。BigDecimal由一個任意精度的整型非標度值和一個32位整數組成
- StringType:代表一個字符串值
- BinaryType:代表一個byte序列值
- BooleanType:代表boolean值
- Datetime類型
- TimestampType:代表包含字段年,月,日,時,分,秒的值
- DateType:代表包含字段年,月,日的值
- 復雜類型
- ArrayType(elementType, containsNull):代表由elementType類型元素組成的序列值。`containsNull`用來指明`ArrayType`中的值是否有null值
- MapType(keyType, valueType, valueContainsNull):表示包括一組鍵 - 值對的值。通過keyType表示key數據的類型,通過valueType表示value數據的類型。`valueContainsNull`用來指明`MapType`中的值是否有null值
- StructType(fields):表示一個擁有`StructFields (fields)`序列結構的值
- StructField(name, dataType, nullable):代表`StructType`中的一個字段,字段的名字通過`name`指定,`dataType`指定field的數據類型,`nullable`表示字段的值是否有null值。
Spark的所有數據類型都定義在包`org.apache.spark.sql`中,你可以通過`import org.apache.spark.sql._`訪問它們。
| 數據類型 | Scala中的值類型 | 訪問或者創建數據類型的API |
|-----|-----|-----|
| ByteType | Byte | ByteType |
| ShortType | Short | ShortType |
| IntegerType | Int | IntegerType |
| LongType | Long | LongType |
| FloatType | Float | FloatType |
| DoubleType | Double | DoubleType |
| DecimalType | scala.math.BigDecimal | DecimalType |
| StringType | String | StringType |
| BinaryType | Array[Byte] | BinaryType |
| BooleanType | Boolean | BooleanType |
| TimestampType | java.sql.Timestamp | TimestampType |
| DateType | java.sql.Date | DateType |
| ArrayType | scala.collection.Seq | ArrayType(elementType, [containsNull]) 注意containsNull默認為true |
| MapType | scala.collection.Map | MapType(keyType, valueType, [valueContainsNull]) 注意valueContainsNull默認為true |
| StructType | org.apache.spark.sql.Row | StructType(fields) ,注意fields是一個StructField序列,相同名字的兩個StructField不被允許 |
| StructField | The value type in Scala of the data type of this field (For example, Int for a StructField with the data type IntegerType) | StructField(name, dataType, nullable) |
- Introduction
- 快速上手
- Spark Shell
- 獨立應用程序
- 開始翻滾吧!
- 編程指南
- 引入 Spark
- 初始化 Spark
- Spark RDDs
- 并行集合
- 外部數據集
- RDD 操作
- RDD持久化
- 共享變量
- 從這里開始
- Spark Streaming
- 一個快速的例子
- 基本概念
- 關聯
- 初始化StreamingContext
- 離散流
- 輸入DStreams
- DStream中的轉換
- DStream的輸出操作
- 緩存或持久化
- Checkpointing
- 部署應用程序
- 監控應用程序
- 性能調優
- 減少批數據的執行時間
- 設置正確的批容量
- 內存調優
- 容錯語義
- Spark SQL
- 開始
- 數據源
- RDDs
- parquet文件
- JSON數據集
- Hive表
- 性能調優
- 其它SQL接口
- 編寫語言集成(Language-Integrated)的相關查詢
- Spark SQL數據類型
- GraphX編程指南
- 開始
- 屬性圖
- 圖操作符
- Pregel API
- 圖構造者
- 頂點和邊RDDs
- 圖算法
- 例子
- 提交應用程序
- 獨立運行Spark
- 在yarn上運行Spark
- Spark配置