📅  最后修改于: 2023-12-03 14:53:10.491000             🧑  作者: Mango
在 PySpark 中,DataFrame 是一种高级数据结构,它可以被认为是一张表格,具有行和列,列有列名称和数据类型。DataFrame 的架构主要由列名称和列数据类型组成。
在工作中,经常需要检查 DataFrame 的架构。下面介绍几种常用方法来检查 PySpark 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 列,分别是 id
、name
、age
、gender
和 salary
,它们的数据类型分别为整型、字符串型、整型、字符串型和浮点型。
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 的架构,进行列的类型转换、获取列名和列的数据类型等操作。