在 Apache Spark 中,可以使用 toDF()
方法将数据从 DataFrame 转换为 Dataset。为了校验转换后的数据,可以使用以下方法:
show()
方法打印数据集:from pyspark.sql import SparkSession
# 创建 Spark 会话
spark = SparkSession.builder \
.appName("DataFrame to Dataset Example") \
.getOrCreate()
# 创建一个简单的 DataFrame
data = [("Alice", 34), ("Bob", 45), ("Cathy", 29)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, columns)
# 将 DataFrame 转换为 Dataset
dataset = df.as[Person]
# 打印数据集
dataset.show()
count()
和 collect()
方法检查数据集的大小和内容:# 计算数据集的大小
count = dataset.count()
print(f"Dataset count: {count}")
# 收集数据集到驱动程序内存,以便查看具体内容
collected_data = dataset.collect()
print("Collected data:")
for row in collected_data:
print(row)
filter()
方法对数据集进行过滤,然后使用 show()
方法查看过滤后的结果:# 定义一个简单的 Person 类
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
schema = StructType([
StructField("Name", StringType(), True),
StructField("Age", IntegerType(), True)
])
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name={self.name}, age={self.age})"
# 将 DataFrame 转换为 Dataset
dataset = df.as[Person]
# 过滤年龄大于等于 30 的数据
filtered_dataset = dataset.filter(dataset.age >= 30)
# 打印过滤后的数据集
filtered_dataset.show()
通过这些方法,可以校验转换后的数据集是否符合预期。