pyspark入门系列 - 08 pyspark.sql.types数据类型汇总

本小节来学习pyspark.sql中的types中的数据类型,数据类型汇总如下
在这里插入图片描述

1. DataType

数据类型的基类

fromInternal(obj)

转换SQL对象为Python对象

json()

jsonValue()

needConversion()

此类型是否需要在Python对象和内部SQL对象之间进行转换。
这用于避免对ArrayType / MapType / StructType进行不必要的转换。

simpleString()

toInternal()

将Python对象转换成SQL对象

类方法 typeName()

2. 数据类型

2.1 NullType

空类型。表示无的数据类型,用于无法推断的类型

2.2 StringType

字符串类型

2.3 BinaryType

二进制(字节数组)数据类型

2.4 BooleanType

布尔数据类型

2.5 DateType

日期(datetime.date)数据类型

2.6 TimestampType

时间戳(datetime.datetime)数据类型

2.7 DecimalType(precision=10, scale=0)

十进制(decimal.Decimal)数据类型,DecimalType类型的数据必须具有固定的精度(最大总位数)和小数位数(点右侧的位数)。例如,(5,2)可以支持从[-999.99到999.99]的值。

precision: 精度,最大总位数(默认值:10)
scale:标度,点右侧的位数(默认值:0)

2.8 DoubleType

双精度数据类型,表示双精度浮点数

2.9 FloatType

浮点数据类型,表示单精度浮点

2.10 ByteType

字节数据类型,即单个字节中的有符号整数

2.11 IntegerType

Int数据类型,即带符号的32位整数

2.12 LongType

长数据类型,即带符号的64位整数,可表示数据范围[-9223372036854775808,9223372036854775807],如果值超出此范围,请使用DecimalType

2.13 ShortType

短数据类型,即带符号的16位整数

2.14 ArrayType(elementType, containsNull=True)

数组数据类型

elementType: DataType数组中每个元素。
containsNull: 布尔值,数组是否可以包含空值(无)

2.15 MapType(keyType, valueType, valueContainsNull=True)

MAP类型

keyType: MapType中的键。
valueType:MapType中的值。
valueContainsNull:指示值是否可以包含空(无)值

2.16 StructField(name, dataType, nullable=True, metadata=None)

StructType类型中的一个field

name –字符串,字段名称。
dataType – DataType字段。
nullable –布尔值,该字段是否可以为null(无)。
元数据 –从字符串到简单类型的字典,可以自动转换为JSON内部

fromInternal(obj)

将内部SQL对象转换为本地Python对象。

fromJson(json)

jsonValue()

needConversion()

此类型是否需要在Python对象和内部SQL对象之间进行转换。这用于避免对ArrayType / MapType / StructType进行不必要的转换。

simpleString()

toInternal(obj)

将Python对象转换为内部SQL对象。

typeName()

2.17 StructType(fields=None)

结构类型,由StructField构成的列表组成,表示的是数据类型Row。迭代StructField就是迭代列表中的StructField,StructField可以通过名称或位置访问包含的内容。

add(field, data_type=None, nullable=True, metadata=None)

通过向其添加新元素以定义架构来构造StructType。该方法接受:

a: 一个参数,它是一个StructField对象。
b: 在2到4个参数之间,例如(名称,数据类型,可为空(可选),元数据(可选)。data_type参数可以是String或DataType对象。

入参:

field: 字段名称或StructField对象
data_type:如果存在,则为要创建的StructField的DataType
nullable:要添加的字段是否应该为空(默认为True)
metadata:任何其他元数据(默认为无)

返回值:

更新后的StructType

fieldNames()

返回列表中的所有字段名称

fromInternal()

将内部SQL对象转换为本地Python对象

fromJson(json)

类方法,

jsonValue()

needConversion()

此类型是否需要在Python对象和内部SQL对象之间进行转换。这用于避免对ArrayType / MapType / StructType进行不必要的转换

simpleString()

toInternal()

将Python对象转换成内部SQL对象

文末致敬官方文档:http://spark.apache.org/docs/2.4.4/api/python/pyspark.sql.html#module-pyspark.sql.types

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值