美文网首页
中文文档pyspark.sql.types

中文文档pyspark.sql.types

作者: cassie_xs | 来源:发表于2020-03-30 16:28 被阅读0次

    1class pyspark.sql.types.DataType

    数据类型的基类。

    10.1 fromInternal(obj)

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

    10.2 json()

    10.3 jsonValue()

    10.4 needConversion()

    这种类型是否需要在Python对象和内部SQL对象之间进行转换?

    这用于避免ArrayType / MapType / StructType的不必要的转换。

    10.5 simpleString()

    10.6 toInternal(obj)

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

    2.class pyspark.sql.types.NullType

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

    3.class pyspark.sql.types.StringType

    String 数据类型。

    4.class pyspark.sql.types.BinaryType

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

    5.class pyspark.sql.types.BooleanType

    Boolean 数据类型。

    6.class pyspark.sql.types.DateType

    Date (datetime.date) 数据类型。

    7.class pyspark.sql.types.TimestampType

    Timestamp (datetime.datetime) 数据类型。

    8.class pyspark.sql.types.DecimalType(precision=10, scale=0)

    Decimal (decimal.Decimal) 数据类型。

    DecimalType必须具有固定的精度(最大总位数)和比例(点右边的位数)。 例如,(5,2)可以支持[-999.99至999.99]之间的值。

    precision可以达到38,scale要小于或等于precision。

    创建DecimalType时,默认的precision和scale是(10,0)。 当从十进制对象中推断模式时,它将是DecimalType(38,18)。

    参数:● precision – 最大的总位数 (默认: 10)

    ●  scale – 点右侧的位数 (默认: 0)

    9.class pyspark.sql.types.DoubleType

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

    10.class pyspark.sql.types.FloatType

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

    11.class pyspark.sql.types.ByteType

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

    12.class pyspark.sql.types.IntegerType

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

    13.class pyspark.sql.types.LongType

    Long数据类型,即有符号的64位整数。

    如果数值超出[-9223372036854775808,9223372036854775807]的范围,请使用DecimalType。

    14.class pyspark.sql.types.ShortType

    Short数据类型,即有符号的16位整数。

    15.class pyspark.sql.types.ArrayType(elementType, containsNull=True)

    数组数据类型。

    参数:●  elementType – 数组中每个元素的DataType。

    ● containsNull – 布尔值,数组是否可以包含null(None)值。

    16.class pyspark.sql.types.MapType(keyType, valueType, valueContainsNull=True)

    Map数据类型。

    参数:●  keyType – map中key的数据类型。

     ●  valueType – map中value的数据类型。

     ●  valueContainsNull – 指示values是否可以包含null(无)值。

    map数据类型中的键不允许为null(无)。

    17.class pyspark.sql.types.StructField(name, dataType, nullable=True, metadata=None)

    StructType中的一个字段。

    参数:● name – 字符串,字段的名称。

     ● dataType – 字段的数据类型。

     ● nullable – boolean,该字段是否可以为null(None)。

     ● metadata – 从字符串到简单类型的字典,可以自动内部转到JSON

    18.class pyspark.sql.types.StructType(fields=None)

    结构类型,由StructField的列表组成。

    这是表示一个行的数据类型。

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

    通过添加新元素来构造一个StructType来定义schema。 该方法接受:

    a:一个参数是一个StructField对象。

    b:介于2到4之间的参数(name,data_type,nullable(可选),metadata(可选))。data_type参数可以是String或DataType对象。

    >>>from pyspark.sql.types import *

    >>>struct1 = StructType().add("f1", StringType(), True).add("f2", StringType(), True, None)

    >>>struct2 = StructType([StructField("f1", StringType(), True), StructField("f2", StringType(), True, None)])

    >>>struct1 == struct2 True

    >>>struct1 = StructType().add(StructField("f1", StringType(), True))

    >>>struct2 = StructType([StructField("f1", StringType(), True)])

    >>>struct1 == struct2 True

    >>>struct1 = StructType().add("f1", "string", True)

    >>>struct2 = StructType([StructField("f1", StringType(), True)])

    >>>struct1 == struct2

    True

    参数:●  field – 字段的名称或者StructField对象

            ●  data_type – 如果存在,则创建StructField的DataType

            ●  nullable – 要添加的字段是否可以是nullable (默认True)

            ●  metadata – 任何其他元数据(默认无)

    返回:一个新的更新的StructType

    相关文章

      网友评论

          本文标题:中文文档pyspark.sql.types

          本文链接:https://www.haomeiwen.com/subject/cuqpuhtx.html