机器学习库 (MLlib) 指南

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

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

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

从 Spark 2.0 开始,spark.mllib 包中的基于 RDD 的 API 已进入维护模式。Spark 的主要机器学习 API 现在是 spark.ml 包中的基于 DataFrame 的 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 的一些新功能和增强功能

迁移指南

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

  1. 要详细了解系统优化本机的优势和背景,您可能希望观看 Sam Halliday 的 ScalaX 演讲,主题是 Scala 中的高性能线性代数。