图书前言

前    言

我们为熟悉Python和pandas的数据科学家和数据工程师编写了本书,因为他们都有处理比当前工具允许的更大规模的数据的需要。有些PySpark用户会发现本书中的部分资料与他们现有的PySpark知识重叠,但我们相信本书仍然会对他们有所帮助,这不仅仅是为了摆脱Java虚拟机(Java virtual machine,JVM)。

本书主要关注数据科学和相关任务,因为我们认为这是Dask最擅长的领域。如果你遇到Dask似乎不太适合解决的更一般性的问题,建议考虑使用Ray,这是一个用于扩展和分发Python和机器学习应用的框架。

关于责任的说明

俗话说,“权力越大,责任越大”。Dask和类似工具使你能够处理更多数据并构建更复杂的模型。重要的是不要仅仅为了数据好看而收集数据,而是要停下来问问自己,在模型中包含新字段是否可能会对现实世界产生一些意想不到的影响。例如,你在网络上随便搜索一下,就能看到很多用心良善的工程师和数据科学家无意中构建了具有毁灭性影响的模型或工具的故事,如增加了对少数族群的审计,或者不知不觉地在词嵌入(一种将词的含义表示为向量的方法)中产生了基于性别的歧视等。有关详细信息,你可以访问以下网址:

https://oreil.ly/tqjth

因此,请在使用你新发现的能力时考虑到这种潜在的后果,因为没有人希望自己作为反面教材出现在教科书中。

本书中使用的约定

本书使用以下文本约定。

(1)有关代码块的设置如下:

with performance_report(filename="computation_report.html"):

    gnarl = da.random.beta(

        1, 2, size=(

            10000, 10000, 10), chunks=(

            1000, 1000, 5))

    x = da.random.random((10000, 10000, 10), chunks=(1000, 1000, 5))

    y = (da.arccos(x) * gnarl).sum(axis=(1, 2))

    y.compute()

(2)术语或重要单词在括号内保留其英文原文,方便读者对照查看。示例如下:

大多数部署选项映射到不同类型的集群管理器(cluster manager,CM)。CM管理计算机组并在用户和作业之间提供一定程度的隔离。

(3)界面词汇将保留其英文原文,在后面使用括号提供其中文译文。示例如下:

Task Graph(任务图)也是对任务依赖性的准确描述。颜色编码还突出显示了计算生命周期中每个工作和数据当前所处的位置。通过查看此图,你可以了解哪些任务是瓶颈,因此这可能是开始优化代码的好地方。

(4)本书还使用了以下3个图标:

  表示提示或小技巧。

  表示一般性注释。

  表示警告或重要的注意事项。

在线图片

读者可以访问以下网址找到一些图的更大尺寸的彩色版本:

https://oreil.ly/SPWD-figures

每幅图的链接也出现在它们的图题中。

许可

在本书以印刷品形式出版之后,即表示已提供知识共享署名-非商业性使用-禁止演绎4.0国际协议(Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License,CC BY-NC-ND 4.0)下的许可,但这并不包括O’Reilly独特的设计元素(即封面图片、设计格式、“外观和感觉”)或O’Reilly的商标、服务标志和商品名。感谢O’Reilly允许我们在知识共享许可下提供本书。

使用本书示例代码

本书提供了配套GitHub存储库,其网址如下:

https://oreil.ly/scaling-python-dask-code

在该存储库中包含本书的大部分代码示例。它们主要位于dask目录下,更多深奥的部分(例如跨平台CUDA容器)则位于单独的顶级目录中。

如果有技术问题或在使用代码示例时遇到问题,请发送电子邮件至 support@oreilly.com。

本书旨在帮助你完成工作。一般来说,如果本书提供了示例代码,你就可以在你的程序和文档中使用它。除非你要复制大部分代码,否则你无需联系我们以获得许可。例如,如果你编写的程序使用了本书中的一些代码块,这不需要许可,但是销售或分发O'Reilly书籍中的示例是需要获得许可的;引用本书示例代码来回答问题不需要许可,但是将本书中的大量示例代码合并到产品文档中是需要许可的。

我们感谢但通常不要求署名。署名通常包括标题、作者、出版商和国际标准书号(ISBN)。例如:“《利用Dask扩展Python性能》由Holden Karau和Mika Kimmins著(O’Reilly)。版权所有2023 Holden Karau和Mika Kimmins,ISBN 978-1-098-11987-4”。

如果你觉得对代码示例的使用超出了合理范围或上述所给的权限,请随时通过 permissions@oreilly.com 与我们联系。

O’Reilly在线学习平台(O’Reilly Online Learning)

近40年来,O’Reilly Media致力于提供技术和商业培训、

知识和卓越见解,帮助众多公司取得成功。

我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境以及O’Reilly和200多家其他出版商提供的大量文本和视频资源。更多相关信息,请访问http://oreilly.com。

 

如何联系我们

请将关于本书的意见和问题寄给出版商:

美国:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

北京市西城区西直门南大街2号成铭大厦C座807室(100035)

奥莱利技术咨询(北京)有限公司

致谢

本书献给那些以任何方式为一个更公平且无偏见的世界而战的人,无论个人的力量多么渺小,但只要为此而努力,就值得这份感谢。对于所有无缘相见者,我们记挂在心;对于那些未曾谋面者,我们很高兴见到你。

本书的写作基于作者从Dask和PyData等诸多社区吸取的知识和经验,因此我们首先要感谢这些社区。此外还要感谢所有早期读者和审稿人的贡献和指导。这些审稿人包括Ruben Berenguel、Adam Breindel、Tom Drabas、Joseph Gnanaprakasam、John Iannone、Kevin Kho和Jess Males等。特别感谢Ann Spencer审核通过了本书的早期项目提议。本书如果有任何错误都是我们的问题,因为我们有时甚至会拒绝审稿人的建议。 

Holden要特别感谢其爱犬Timbit,它是忠实的房屋守卫。

Mika要感谢Holden的指导和帮助,并向哈佛大学数据科学系的同事们致敬,感谢他们提供的无限量的免费咖啡。