下面是一个遍历 PySpark 数据帧(DataFrame)的示例代码:
from pyspark.sql import SparkSession
# 创建 SparkSession
spark = SparkSession.builder \
.appName("DataFrameExample") \
.getOrCreate()
# 创建示例数据帧
df = spark.createDataFrame([(1, "Alice", 25), (2, "Bob", 30), (3, "Charlie", 35)], ["id", "name", "age"])
# 遍历数据帧的每一行
for row in df.collect():
# 获取每一列的值
id, name, age = row
print(f"id: {id}, name: {name}, age: {age}")
# 关闭 SparkSession
spark.stop()
这段代码中,首先创建了一个 SparkSession 对象,然后使用 createDataFrame
方法创建了一个包含三列的数据帧。接下来,使用 collect
方法将数据帧的所有行收集到一个列表中,并使用 for
循环遍历每一行。在循环中,可以使用索引或列名来获取每一列的值。最后,关闭 SparkSession 对象。
注意:在实际使用中,如果数据帧非常大,使用 collect
方法将所有行收集到驱动程序可能会导致内存不足的问题,应该谨慎使用。可以考虑使用其他的操作来处理数据帧,如 foreach
方法来逐行处理数据。