# 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
- 獨立應用程序
- 開始翻滾吧!
- RDD編程基礎
- 基礎介紹
- 外部數據集
- RDD 操作
- 轉換Transformations
- map與flatMap解析
- 動作Actions
- RDD持久化
- RDD容錯機制
- 傳遞函數到 Spark
- 使用鍵值對
- RDD依賴關系與DAG
- 共享變量
- Spark Streaming
- 一個快速的例子
- 基本概念
- 關聯
- 初始化StreamingContext
- 離散流
- 輸入DStreams
- DStream中的轉換
- DStream的輸出操作
- 緩存或持久化
- Checkpointing
- 部署應用程序
- 監控應用程序
- 性能調優
- 減少批數據的執行時間
- 設置正確的批容量
- 內存調優
- 容錯語義
- Spark SQL
- 概述
- SparkSQLvsHiveSQL
- 數據源
- RDDs
- parquet文件
- JSON數據集
- Hive表
- 數據源例子
- join操作
- 聚合操作
- 性能調優
- 其他
- Spark SQL數據類型
- 其它SQL接口
- 編寫語言集成(Language-Integrated)的相關查詢
- GraphX編程指南
- 開始
- 屬性圖
- 圖操作符
- Pregel API
- 圖構造者
- 部署
- 頂點和邊RDDs
- 圖算法
- 例子
- 更多文檔
- 提交應用程序
- 獨立運行Spark
- 在yarn上運行Spark
- Spark配置
- RDD 持久化