gpt4 book ai didi

apache-spark - 仅将 Spark ML 管道用于转换

转载 作者:行者123 更新时间:2023-12-04 17:47:27 25 4
gpt4 key购买 nike

我正在从事一个项目,其中可配置管道和对 Spark DataFrames 变更的沿袭跟踪都是必不可少的。该管道的端点通常只是修改后的数据帧(将其视为 ETL 任务)。对我来说最有意义的是利用现有的 Spark ML Pipeline API 来跟踪这些更改。特别是,更改(根据其他列添加列等)是作为自定义 Spark ML 转换器实现的。

但是,我们现在正在内部讨论这是否是实现此管道的最惯用方式。另一种选择是将这些转换实现为一系列 UDF,并基于 DataFrame 的模式历史(或 Spark 的内部 DF 沿袭跟踪)构建我们自己的沿袭跟踪。这方面的论点是 Spark 的 ML 管道不仅仅是 ETL 作业,而且应该始终以生成可以馈送到 Spark ML Evaluator 的列为目标来实现。反对这一方面的论点是,它需要大量工作来反射(reflect)已经存在的功能。

将 Spark 的 ML Pipelines 严格用于 ETL 任务有什么问题吗?仅使用 Transformers 且不包括 Evaluator 的任务?

最佳答案

对我来说,这似乎是个好主意,特别是如果您可以将生成的不同管道组合成新的管道,因为管道本身可以由不同的管道组成,因为管道从 PipelineStage 向上延伸到树(来源:https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.Pipeline) .

但请记住,您可能会按照此处 (https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-mllib/spark-mllib-transformers.html) 的说明在幕后做同样的事情:

Internally, transform method uses Spark SQL’s udf to define a function (based on createTransformFunc function described above) that will create the new output column (with appropriate outputDataType). The UDF is later applied to the input column of the input DataFrame and the result becomes the output column (using DataFrame.withColumn method).

如果您决定采用其他方法或找到更好的方法,请发表评论。很高兴分享有关 Spark 的知识。

关于apache-spark - 仅将 Spark ML 管道用于转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47820188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com