📅  最后修改于: 2023-12-03 15:24:57.930000             🧑  作者: Mango
在 Pyspark 中,使用数据框 (DataFrame) 来表示数据是非常常见的。由于 Pyspark 可以处理大规模的数据,数据框的列类型的正确性变得更加重要。本文将介绍如何验证数据框列类型。
printSchema
方法DataFrame
类具有 printSchema
方法,可以将数据框的结构以树形结构打印出来,包括每列的名称和类型。以下是一个示例:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('example').getOrCreate()
data = [('Alice', 1), ('Bob', 2), ('Charlie', 3)]
df = spark.createDataFrame(data, ['name', 'age'])
df.printSchema()
输出结果如下:
root
|-- name: string (nullable = true)
|-- age: long (nullable = true)
从输出结果可以看出,第一列的类型为 string
,第二列的类型为 long
。
dtypes
属性另一个可以验证数据框列类型的方法是使用 dtypes
属性。这个属性返回的是一个包含元组的列表,其中每个元组包含列名称和列类型。以下是一个示例:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('example').getOrCreate()
data = [('Alice', 1), ('Bob', 2), ('Charlie', 3)]
df = spark.createDataFrame(data, ['name', 'age'])
print(df.dtypes)
输出结果如下:
[('name', 'string'), ('age', 'bigint')]
从输出结果可以看出,第一列的类型为 string
,第二列的类型为 bigint
。
getColumnType
方法DataFrame
中每一列都是一个 Column
对象,通过调用 Column
的 getColumnType
方法可以返回该列的类型。以下是一个示例:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
spark = SparkSession.builder.appName('example').getOrCreate()
data = [('Alice', 1), ('Bob', 2), ('Charlie', 3)]
df = spark.createDataFrame(data, ['name', 'age'])
print(col('name').getColumnType())
print(col('age').getColumnType())
输出结果如下:
StringType
LongType
从输出结果可以看出,第一列的类型为 StringType
,第二列的类型为 LongType
。
使用 printSchema
方法、dtypes
属性或 getColumnType
方法均可以验证数据框中每一列的类型。在实际应用中,可以根据具体情况选择不同的方法。