机器学习库 (MLlib) 指南

MLlib 是 Spark 的机器学习 (ML) 库。其目标是使实用的机器学习可扩展且易于使用。从高层次上讲,它提供如下工具:

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

MLlib 基于 RDD 的 API 现在处于维护模式。

从 Spark 2.0 开始,RDD 中基于 spark.mllib 包的 API 已进入维护模式。 Spark 的主要机器学习 API 现在是 DataFrame 中基于 spark.ml 包的 API。

这意味着什么?

为什么 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 的一些新功能和增强功能

迁移指南

迁移指南现在已在此页面上存档 on this page

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