English · PDF 14
想跳过练习的话,没有比在真实问题上实践更好的学习方式了。
有一些重要的主题本书并未涵盖。我们认为严格聚焦于核心内容非常重要,这样你才能尽快上手。这意味着本书无法涵盖每一个重要主题。
本书专注于小型的内存数据集,这是正确的起点,因为如果没有处理小数据的经验,你就无法应对大数据。你在本书中学到的工具可以轻松处理数百兆字节的数据,稍加注意,通常还能处理 1–2 Gb 的数据。如果你经常处理更大的数据(比如 10–100 Gb),你应该进一步了解 data.table。本书不讲授 data.table,因为它的接口非常简洁,语言提示较少,因此学习难度更大。但如果你在处理大数据,其性能回报值得付出额外的学习成本。
如果你的数据比这还要大,请仔细考虑你的大数据问题是否实际上是一个伪装起来的小数据问题。虽然完整的数据可能很大,但回答特定问题所需的数据往往很小。你也许能找到一个可以放入内存的子集、子样本或摘要,并且仍然能够回答你感兴趣的问题。这里的挑战在于找到合适的小数据,这通常需要大量的迭代。
另一种可能性是,你的大数据问题实际上是由大量小数据问题组成的。每个单独的问题可能都能放入内存,但这样的问题有数百万个。例如,你可能想为数据集中的每个人拟合一个模型。如果只有 10 或 100 个人,这很简单,但你有 100 万人。幸运的是,每个问题都相互独立(这种设置有时被称为“尴尬并行”),所以你只需要一个系统(如 Hadoop 或 Spark),让你能够将不同的数据集发送到不同的计算机上进行处理。一旦你弄清楚了如何使用这些工具回答单个子集的问题