1. Numeric Types(数值类型):
- ByteType: 8位有符号整数
- ShortType: 16位有符号整数
- IntegerType: 32位有符号整数
- LongType: 64位有符号整数
- FloatType: 单精度浮点数
- DoubleType: 双精度浮点数
- DecimalType: 可以指定精度和小数位数的十进制数
2. String Types(字符串类型):
- StringType: 字符串类型
- BinaryType: 二进制数据类型
3. Boolean Type(布尔类型):
- BooleanType: 布尔类型,表示true或false
4. Date and Time Types(日期和时间类型):
- DateType: 表示日期
- TimestampType: 表示时间戳,包括日期和时间信息
5. Collection Types(集合类型):
- ArrayType: 数组类型,可以包含不同数据类型的元素
- MapType: 键值对映射类型
- StructType: 结构化数据类型,可以包含不同字段和字段类型的结构
6. Other Types(其他类型):
- NullType: 表示null值的类型
- ObjectType: 用于表示Java对象
这些数据类型可以用于定义DataFrame或DataSet的结构,也可以在SQL查询中使用。例如,你可以在创建表或执行查询时指定列的数据类型。
示例:
import org.apache.spark.sql.types._
val schema = StructType(List(
StructField("name", StringType, true),
StructField("age", IntegerType, true),
StructField("salary", DoubleType, true)
))
val data = Seq(Row("John", 25, 50000.0), Row("Alice", 30, 60000.0))
val df = spark.createDataFrame(spark.sparkContext.parallelize(data), schema)
df.show()
在上面的示例中,定义了一个包含三个字段(name、age、salary)的结构,然后使用该结构创建了一个DataFrame。这是一个简单的例子,你可以根据实际需要选择合适的数据类型。
转载请注明出处:http://www.pingtaimeng.com/article/detail/9366/Spark