机器学习库 (MLlib) 指南

MLlib 是 Spark 的机器学习 (ML) 库。其目标是使实用的机器学习具有可伸缩性并易于使用。在较高层面,它提供了以下工具:

公告:基于 DataFrame 的 API 是主要 API

MLlib 基于 RDD 的 API 现已进入维护模式。

自 Spark 2.0 起,RDD-based API 在 spark.mllib 包中已进入维护模式。Spark 的主要机器学习 API 现在是 DataFrame-based API,位于 spark.ml 包中。

这意味着什么?

为什么 MLlib 要转向基于 DataFrame 的 API?

什么是“Spark ML”?

MLlib 被弃用了吗?

依赖项

MLlib 使用线性代数包 Breezedev.ludovic.netlib 进行优化数值处理1。如果这些包作为系统库或在运行时库路径中可用,它们可能会调用 Intel MKLOpenBLAS 等原生加速库。

然而,原生加速库无法随 Spark 一起分发。有关如何启用加速线性代数处理,请参阅MLlib 线性代数加速指南。如果未启用加速原生库,您将看到如下警告消息,并将转而使用纯 JVM 实现

WARNING: Failed to load implementation from:dev.ludovic.netlib.blas.JNIBLAS

要在 Python 中使用 MLlib,您需要 NumPy 1.4 或更高版本。

3.0 中的亮点

以下列表重点介绍了 Spark 3.0 版本中添加到 MLlib 的一些新功能和增强功能

迁移指南

迁移指南现已在此页面存档。

  1. 要了解有关系统优化原生库的优点和背景的更多信息,您可能希望观看 Sam Halliday 关于《Scala 中的高性能线性代数》的 ScalaX 演讲。