导入
入门
了解课程内容以及我们将要学习的内容。
概述
在本课程中,我们将学习如何尽可能使用 PySpark 代替 pandas。在 Python 中,pandas 是一个用于操作和分析数据的库。PySpark 是用 Scala 编写的库集合,主要用于大规模数据处理。
我们将使用 亚马逊评论数据的一个子集:《基于远距离标注评论进行推荐理由的解释与细粒度方面分析》
Jianmo Ni, Jiacheng Li, Julian McAuley
EMNLP 2019
本课程旨在演示 PySpark DataFrame API 的各个模块。在每个部分中,我们首先使用 pandas 完成一些任务,然后尝试用 PySpark 实现相同的功能。
...
从数据中获取有价值的信息
本课程的内容流程遵循一个简短的数据分析项目生命周期。在这个生命周期中,我们按照几乎固定的步骤从数据中提取出有价值的信息,如下图所示:
- 加载或读取数据,例如以 CSV、JSON 或 Parquet 格式读入表格形式的数据,使用 pandas 或 PySpark。
- 根据项目需求选择所需字段。这被称为数据子集化。
- 如果数据是新的,可先进行初步探索。
- 对无效数据进行筛选或填补。
- 基于已有字段,通过聚合数据框架(如 pandas 或 PySpark)引入新的计算列。可以使用提供的方法,如 group by、order by、limit 等。
- 计算一些指标或生成可视化图表,便于业务伙伴审查,作为数据驱动决策的支持文档。
实用技巧
在合适的时候,始终对正在处理的
DataFrame创建一个缓存。
这可以减少重新查询整个 DataFrame 的额外开销,使查询速度显著提升。此外,它还能帮助我们移除后续不会使用的冗余字段。
PySpark 使用缓存机制,将数据子集存储在内存中或本地保存。后续任务可以直接使用该子集,从而大幅提升查询效率。