将 Spark ML 管道保存到数据库
Saving Spark ML pipeline to a database
是否可以将 Spark ML 管道保存到数据库(例如 Cassandra)?从文档中我只能看到保存到路径选项:
myMLWritable.save(toPath);
有没有办法以某种方式包装或更改 myMLWritable.write()
MLWriter 实例并将输出重定向到数据库?
目前不可能(或至少不支持)。 ML writer
不是 extendable
并且取决于 Parquet
文件和目录结构来表示 models
.
从技术上讲,您可以提取单个组件并使用内部私有 API
从头开始重新创建 models
,但这可能是唯一的选择。
Spark 2.0.0+
乍一看,所有 Transformers
和 Estimators
都实现了 MLWritable
。如果您使用 Spark <= 1.6.0 并在模型保存方面遇到一些问题,我建议您切换版本。
Spark >= 1.6
从 Spark 1.6 开始,可以使用 save 方法保存模型。因为几乎每个模型都实现了 MLWritable interface. For example LogisticRegressionModel,所以有它,因此可以使用它来将模型保存到所需的路径。
Spark < 1.6
可以优化 DataFrames
上的一些操作,与普通 RDDs
相比,它转化为改进的性能。 DataFrames
提供高效的缓存和 SQLish API 可以说比 RDD API.
更容易理解
ML Pipelinesare extremely useful and tools like cross-validator or different
evaluators 是任何机器管道中必不可少的,即使上述 none 特别难以在低级别 MLlib API
之上实现它拥有现成可用、通用且经过相对良好测试的解决方案要好得多。
我相信最终通过使用 ML
而不是 MLLib
得到的结果是相当优雅的,高水平的 API。您可以做的一件事是将两者结合起来创建一个自定义的多步骤管道:
- 使用 ML 加载、清理和转换数据,
- 提取所需数据(参见示例 [extractLabeledPoints ]4方法)并传递给 MLLib 算法,
- 添加自定义交叉验证/评估
- 使用您选择的方法(Spark 模型或 PMML)保存 MLLib 模型
在Jira
中也提供了临时解决方案。 Temporary Solution
是否可以将 Spark ML 管道保存到数据库(例如 Cassandra)?从文档中我只能看到保存到路径选项:
myMLWritable.save(toPath);
有没有办法以某种方式包装或更改 myMLWritable.write()
MLWriter 实例并将输出重定向到数据库?
目前不可能(或至少不支持)。 ML writer
不是 extendable
并且取决于 Parquet
文件和目录结构来表示 models
.
从技术上讲,您可以提取单个组件并使用内部私有 API
从头开始重新创建 models
,但这可能是唯一的选择。
Spark 2.0.0+
乍一看,所有 Transformers
和 Estimators
都实现了 MLWritable
。如果您使用 Spark <= 1.6.0 并在模型保存方面遇到一些问题,我建议您切换版本。
Spark >= 1.6
从 Spark 1.6 开始,可以使用 save 方法保存模型。因为几乎每个模型都实现了 MLWritable interface. For example LogisticRegressionModel,所以有它,因此可以使用它来将模型保存到所需的路径。
Spark < 1.6
可以优化 DataFrames
上的一些操作,与普通 RDDs
相比,它转化为改进的性能。 DataFrames
提供高效的缓存和 SQLish API 可以说比 RDD API.
ML Pipelinesare extremely useful and tools like cross-validator or different
evaluators 是任何机器管道中必不可少的,即使上述 none 特别难以在低级别 MLlib API
之上实现它拥有现成可用、通用且经过相对良好测试的解决方案要好得多。
我相信最终通过使用 ML
而不是 MLLib
得到的结果是相当优雅的,高水平的 API。您可以做的一件事是将两者结合起来创建一个自定义的多步骤管道:
- 使用 ML 加载、清理和转换数据,
- 提取所需数据(参见示例 [extractLabeledPoints ]4方法)并传递给 MLLib 算法,
- 添加自定义交叉验证/评估
- 使用您选择的方法(Spark 模型或 PMML)保存 MLLib 模型
在Jira
中也提供了临时解决方案。 Temporary Solution