📜  如何检查 PySpark DataFrame 的架构?(1)

📅  最后修改于: 2023-12-03 14:53:10.491000             🧑  作者: Mango

如何检查 PySpark DataFrame 的架构?

在 PySpark 中,DataFrame 是一种高级数据结构,它可以被认为是一张表格,具有行和列,列有列名称和数据类型。DataFrame 的架构主要由列名称和列数据类型组成。

在工作中,经常需要检查 DataFrame 的架构。下面介绍几种常用方法来检查 PySpark DataFrame 的架构。

查看 DataFrame 的列和数据类型

可以使用 printSchema() 方法来查看 DataFrame 的列和数据类型。该方法返回一个字符串,该字符串包含 DataFrame 的列名称、对应的数据类型以及是否为可空的标识符。

df.printSchema()

该方法将输出如下信息:

root
 |-- id: integer (nullable = false)
 |-- name: string (nullable = true)
 |-- age: integer (nullable = true)
 |-- gender: string (nullable = true)
 |-- salary: double (nullable = true)

可以看到,该 DataFrame 有 5 列,分别是 idnameagegendersalary,它们的数据类型分别为整型、字符串型、整型、字符串型和浮点型。

列的类型转换

DataFrame 中的列数据类型也可以进行转换,比如将整型转换为字符串型、将字符串型转换为日期型等。可以使用 withColumn() 方法来实现列的类型转换。

from pyspark.sql.functions import col

df = df.withColumn("age", col("age").cast("string"))

在上述例子中,我们将 age 列的数据类型从整型转换为字符串型。

获取列名

可以使用 columns 属性获取 DataFrame 的所有列。

column_list = df.columns
print(column_list)

输出结果如下:

['id', 'name', 'age', 'gender', 'salary']
获取列的数据类型

可以使用 dtypes 属性获取 DataFrame 的列及其数据类型。

dtype_list = df.dtypes
print(dtype_list)

输出结果如下:

[('id', 'int'), ('name', 'string'), ('age', 'int'), ('gender', 'string'), ('salary', 'double')]
总结

在 PySpark 中,DataFrame 的架构是非常重要的。开发者经常需要使用 DataFrame 的架构信息来进行数据的操作和转换。使用上述方法可以方便地检查 DataFrame 的架构,进行列的类型转换、获取列名和列的数据类型等操作。