机器学习库 (MLlib) 指南

MLlib 是 Spark 的机器学习 (ML) 库。 它的目标是使实用的机器学习可扩展且简单。 从高层次来看,它提供了以下工具:

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

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

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

这有什么影响?

为什么MLlib要切换到基于DataFrame的API?

什么是“Spark ML”?

MLlib 被弃用了吗?

依赖项

MLlib使用线性代数包 Breeze dev.ludovic.netlib 进行优化的数值处理 1 。这些软件包可以调用本地加速库,如 Intel MKL OpenBLAS ,前提是它们作为系统库或在运行时库路径中可用。

然而,原生加速库无法与Spark一起分发。请参见 MLlib线性代数加速指南 了解如何启用加速的线性代数处理。如果未启用加速的原生库,您将看到如下警告信息,并将使用纯JVM实现:

警告:无法从:dev.ludovic.netlib.blas.JNIBLAS 加载实现

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

3.0 的亮点

下面的列表强调了一些在 Spark 的 3.0 版本中添加到 MLlib 的新功能和增强特性:

迁移指南

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

  1. 要了解系统优化本地的好处和背景,您可能希望观看Sam Halliday关于 Scala中的高性能线性代数 的ScalaX演讲。