欢迎访问宙启技术站
智能推送

pyspark.sql.types常用数据类型介绍

发布时间:2024-01-05 19:53:58

pyspark.sql.types是PySpark中用于定义和操作数据类型的模块。它提供了一系列常用的数据类型,可以用于创建和转换DataFrame中的列。

下面是pyspark.sql.types中常用的数据类型,以及每种类型的介绍和使用示例:

1. IntegerType(整型):表示整数类型,占用4个字节。

from pyspark.sql.types import IntegerType
schema = IntegerType()

2. LongType(长整型):表示长整数类型,占用8个字节。

from pyspark.sql.types import LongType
schema = LongType()

3. FloatType(单精度浮点型):表示单精度浮点数类型,占用4个字节。

from pyspark.sql.types import FloatType
schema = FloatType()

4. DoubleType(双精度浮点型):表示双精度浮点数类型,占用8个字节。

from pyspark.sql.types import DoubleType
schema = DoubleType()

5. StringType(字符串型):表示字符串类型。

from pyspark.sql.types import StringType
schema = StringType()

6. BooleanType(布尔类型):表示布尔值类型。

from pyspark.sql.types import BooleanType
schema = BooleanType()

7. DateType(日期型):表示日期类型。

from pyspark.sql.types import DateType
schema = DateType()

8. TimestampType(时间戳型):表示时间戳类型。

from pyspark.sql.types import TimestampType
schema = TimestampType()

9. ArrayType(数组型):表示数组类型,可以包含不同类型的元素。

from pyspark.sql.types import ArrayType, IntegerType
schema = ArrayType(IntegerType())

10. StructType(结构型):表示结构体类型,可以包含不同类型的字段。

from pyspark.sql.types import StructType, StructField, IntegerType, StringType
schema = StructType([
    StructField("name", StringType()),
    StructField("age", IntegerType())
])

上述示例中,首先我们导入了所需的数据类型模块,然后使用对应的数据类型创建了schema对象。这些schema对象可以用于创建DataFrame中的列,或者进行列之间的类型转换。

例如,我们可以使用上述的schema对象创建一个DataFrame:

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, schema)

# 显示DataFrame的内容
df.show()

# 打印DataFrame的schema
df.printSchema()

上述代码创建了一个包含两列(name和age)的DataFrame,然后将数据插入到DataFrame中,并打印出DataFrame的内容和schema。

总结起来,pyspark.sql.types模块提供了丰富的数据类型,可以用于定义和操作DataFrame中的列。这些数据类型可以根据实际需求进行使用和转换,帮助我们方便地处理大规模数据。