Spark SQL數(shù)據(jù)類型

2018-02-24 15:58 更新

Spark SQL數(shù)據(jù)類型

  • 數(shù)字類型

  • ByteType:代表一個字節(jié)的整數(shù)。范圍是-128到127
  • ShortType:代表兩個字節(jié)的整數(shù)。范圍是-32768到32767
  • IntegerType:代表4個字節(jié)的整數(shù)。范圍是-2147483648到2147483647
  • LongType:代表8個字節(jié)的整數(shù)。范圍是-9223372036854775808到9223372036854775807
  • FloatType:代表4字節(jié)的單精度浮點(diǎn)數(shù)
  • DoubleType:代表8字節(jié)的雙精度浮點(diǎn)數(shù)
  • DecimalType:代表任意精度的10進(jìn)制數(shù)據(jù)。通過內(nèi)部的java.math.BigDecimal支持。BigDecimal由一個任意精度的整型非標(biāo)度值和一個32位整數(shù)組成
  • StringType:代表一個字符串值
  • BinaryType:代表一個byte序列值
  • BooleanType:代表boolean值
  • Datetime類型

  • TimestampType:代表包含字段年,月,日,時,分,秒的值
  • DateType:代表包含字段年,月,日的值

  • 復(fù)雜類型

  • ArrayType(elementType, containsNull):代表由elementType類型元素組成的序列值。containsNull用來指明ArrayType中的值是否有null值
  • MapType(keyType, valueType, valueContainsNull):表示包括一組鍵 - 值對的值。通過keyType表示key數(shù)據(jù)的類型,通過valueType表示value數(shù)據(jù)的類型。valueContainsNull用來指明MapType中的值是否有null值
  • StructType(fields):表示一個擁有StructFields (fields)序列結(jié)構(gòu)的值

  • StructField(name, dataType, nullable):代表StructType中的一個字段,字段的名字通過name指定,dataType指定field的數(shù)據(jù)類型,nullable表示字段的值是否有null值。

Spark的所有數(shù)據(jù)類型都定義在包org.apache.spark.sql中,你可以通過import org.apache.spark.sql._訪問它們。

數(shù)據(jù)類型 Scala中的值類型 訪問或者創(chuàng)建數(shù)據(jù)類型的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默認(rèn)為true
MapType scala.collection.Map MapType(keyType, valueType, [valueContainsNull]) 注意valueContainsNull默認(rèn)為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)
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號