【发布时间】:2018-04-18 03:41:14
【问题描述】:
我正在从事一个项目,其中可配置的管道和对 Spark DataFrames 更改的沿袭跟踪都是必不可少的。此管道的端点通常只是修改后的 DataFrame(将其视为 ETL 任务)。对我来说最有意义的是利用现有的 Spark ML Pipeline API 来跟踪这些更改。特别是,更改(基于其他列添加等)是作为自定义 Spark ML 转换器实现的。
但是,我们现在正在内部讨论这是否是实现此管道的最惯用方式。另一种选择是将这些转换实现为一系列 UDF,并基于 DataFrame 的模式历史记录(或 Spark 的内部 DF 沿袭跟踪)构建我们自己的沿袭跟踪。这方面的论点是,Spark 的 ML 管道不仅仅用于 ETL 作业,而且应该始终以生成可以馈送到 Spark ML Evaluator 的列为目标来实现。反对这一方面的论点是,它需要大量反映现有功能的工作。
将 Spark 的 ML 管道严格用于 ETL 任务有什么问题吗?仅使用 Transformer 且不包括 Evaluator 的任务?
【问题讨论】:
标签: apache-spark apache-spark-mllib apache-spark-ml