单台计算机处理大数据的策略与实践
1. MapReduce算法
MapReduce算法可以通过一个类比来轻松理解。假设你要统计全国选举的所有选票,你的国家有25个政党、1500个投票站和200万选民。你有两种选择:一是逐个收集每个投票站的所有选票并集中统计;二是让当地投票站统计25个政党的选票,然后将结果交给你,你再按政党汇总。
MapReduce遵循第二种工作方式。它首先将值映射到一个键,然后在归约阶段对该键进行聚合。以下是MapReduce伪代码示例:
For each person in voting office:
Yield (voted_party, 1)
For each vote in voting office:
add_vote_to_party()
MapReduce算法的优点之一是易于并行化和分布式处理,这解释了它在Hadoop等分布式环境中的成功,同时它也可以在单台计算机上使用。在Python中实现MapReduce时,无需从头开始,有许多库可以帮助你完成大部分工作,如Hadoopy、Octopy、Disco或Dumbo。
2. 选择合适的数据结构
算法对程序的成败起着关键作用,但数据的存储方式同样重要。不同的数据结构具有不同的存储要求,并且会影响对数据集的CRUD(创建、读取、更新和删除)等操作的性能。常见的数据结构有稀疏数据、树数据和哈希数据。
2.1 稀疏数据
稀疏数据集与其条目(观测值)相比,包含的信息相对较少。例如,在将文本数据转换为二进
超级会员免费看
订阅专栏 解锁全文
2373

被折叠的 条评论
为什么被折叠?



