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

pyspark.sql.types模块中的映射数据类型介绍

发布时间:2024-01-05 20:00:23

pyspark.sql.types模块提供了一组用于定义结构化数据的数据类型。这些类型可以用于创建Spark DataFrame中的列,以及定义函数的输出和输入参数类型。

常见的数据类型包括:

1. StringType: 用于表示字符串类型数据。可以使用StringType()构造函数创建一个字符串类型的列。

from pyspark.sql.types import StringType

string_col = StringType()

2. IntegerType: 用于表示整数类型数据。可以使用IntegerType()构造函数创建一个整数类型的列。

from pyspark.sql.types import IntegerType

int_col = IntegerType()

3. FloatType: 用于表示浮点数类型数据。可以使用FloatType()构造函数创建一个浮点数类型的列。

from pyspark.sql.types import FloatType

float_col = FloatType()

4. BooleanType: 用于表示布尔类型数据。可以使用BooleanType()构造函数创建一个布尔类型的列。

from pyspark.sql.types import BooleanType

bool_col = BooleanType()

5. DateType: 用于表示日期类型数据。可以使用DateType()构造函数创建一个日期类型的列。

from pyspark.sql.types import DateType

date_col = DateType()

6. TimestampType: 用于表示时间戳类型数据。可以使用TimestampType()构造函数创建一个时间戳类型的列。

from pyspark.sql.types import TimestampType

timestamp_col = TimestampType()

此外,还有其他一些数据类型,如DecimalType用于表示精确的十进制数,ArrayType用于表示数组类型,MapType用于表示键值对类型等。

下面是一个使用这些数据类型创建DataFrame列的示例:

from pyspark.sql import SparkSession
from pyspark.sql.types import StringType, IntegerType, FloatType

spark = SparkSession.builder.getOrCreate()

data = [
    ("Alice", 25, 5.6),
    ("Bob", 30, 6.1),
    ("Charlie", 35, 5.8)
]

df = spark.createDataFrame(data, ["name", "age", "height"])
df.printSchema()
df.show()

输出结果为:

root
 |-- name: string (nullable = true)
 |-- age: integer (nullable = true)
 |-- height: float (nullable = true)

+-------+---+------+
|   name|age|height|
+-------+---+------+
|  Alice| 25|   5.6|
|    Bob| 30|   6.1|
|Charlie| 35|   5.8|
+-------+---+------+

可以看到,name列的数据类型为StringType,age列的数据类型为IntegerType,height列的数据类型为FloatType。

总结来说,pyspark.sql.types模块中的映射数据类型提供了丰富的数据类型用于定义结构化数据。这些数据类型可以用于创建DataFrame的列,以及定义函数的输入和输出参数类型。