Spark 教程

Spark SQL

Spark 笔记

Spark MLlib

pyspark dataframe 如何遍历每一行数据

Spark DataFrame 原理及操作详解 Spark DataFrame 原理及操作详解


pyspark 针对 dataframe 如何遍历每一行数据?

推荐答案

可以先对 dataframe 对象进行 collect() 操作,它返回 <class 'list'> 类型,然后遍历 list 即可:

for row in df.collect():
    print(row.id, row.query)

上述中的 row 是 <class 'pyspark.sql.types.Row'> 类型,获取某列的值,可以直接访问,如 row.idrow['query']

完整的示例如下:

from pyspark.sql import SparkSession

spark_session = SparkSession.builder \
    .appName('knowledgedict-dataframe') \
    .master('local') \
    .getOrCreate()

df = spark_session.createDataFrame(
    schema=['id', 'query', 'cnt'],
    data=[
        (1, '北京房价', 3456),
        (2, '三亚旅游', 789),
        (3, '美国大选', 12)
    ]
)

df.show()

dfc = df.collect()
print(type(dfc))
for row in dfc:
    print(type(row), row, row.id, row['query'])