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的列,以及定义函数的输入和输出参数类型。
