spark内置数据类型

在用scala编写spark的时候,假如我现在需要将我spark读的数据源的字段,做一个类型转换,因

为需求中要拼接出sql的create table语句,需要每个字段的sql中的类型,那么就需要去和sparksql

中的内置数据类型去比对。

写spark的时候,创建df后用schema算子得到了structField类,查看了源码以后,发现

这个样例类的三个参数:name、dataType、nullable、(metadata)

发现第二个参数是这个包下的

于是查阅资料 发现一共有这些参数:

整数类型:

IntegerType 或 IntType: 32 位有符号整数。
LongType: 64 位有符号整数。
ShortType: 16 位有符号整数。
ByteType: 8 位有符号整数。
浮点数类型:

FloatType: 单精度浮点数。
DoubleType: 双精度浮点数。
十进制类型:

DecimalType: 固定精度和固定规模的十进制数。
布尔类型:

BooleanType: 用于表示布尔值(true 或 false)。
字符串类型:

StringType: 用于表示字符串。
二进制类型:

BinaryType: 用于表示二进制数据。
日期和时间类型:

DateType: 用于表示日期。
TimestampType: 用于表示日期和时间。
数组类型:

ArrayType: 用于表示数组。
映射类型:

MapType: 用于表示键值对的映射。
结构类型:

StructType: 用于表示结构化的数据,可以包含多个字段。
空类型:

NullType: 用于表示空值。

这些数据类型都属于 org.apache.spark.sql.types 包,并在 Spark SQL 中提供用于构建 DataFrame 模式的工具。在创建 DataFrame 时,你可以使用这些数据类型来定义每列的数据类型。例如:

import org.apache.spark.sql.types._

val schema = StructType(Seq(
  StructField("name", StringType, true),
  StructField("age", IntegerType, false),
  StructField("salary", DoubleType, true)
))

val df = spark.createDataFrame(spark.sparkContext.emptyRDD[Row], schema)
相关推荐
Elastic 中国社区官方博客1 小时前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
Aloudata2 小时前
从Apache Atlas到Aloudata BIG,数据血缘解析有何改变?
大数据·apache·数据血缘·主动元数据·数据链路
不能再留遗憾了2 小时前
RabbitMQ 高级特性——消息分发
分布式·rabbitmq·ruby
水豚AI课代表2 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
茶馆大橘2 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
材料苦逼不会梦到计算机白富美5 小时前
golang分布式缓存项目 Day 1
分布式·缓存·golang
拓端研究室TRL5 小时前
【梯度提升专题】XGBoost、Adaboost、CatBoost预测合集:抗乳腺癌药物优化、信贷风控、比特币应用|附数据代码...
大数据
黄焖鸡能干四碗5 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
想进大厂的小王5 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
Java 第一深情5 小时前
高性能分布式缓存Redis-数据管理与性能提升之道
redis·分布式·缓存