【问题标题】:How to use pipeline for Apache Spark jobs?如何将管道用于 Apache Spark 作业?
【发布时间】:2022-03-23 17:36:28
【问题描述】:

我正在学习如何将 kubeflow 管道用于 Apache Spark 作业并有一个问题。如果您能分享您的想法,我将不胜感激!

据我了解,SparkSession 之间无法共享数据,并且在每个管道步骤/组件中,您需要实例化一个新的 SparkSession(如果我错了,请纠正我)。这是否意味着为了使用来自先前管道步骤的 spark 作业的输出,我们需要将其保存在某个地方?我怀疑这会导致磁盘读/写负担并减慢整个过程。您能否与我分享一下使用管道进行火花工作会有多大帮助?

我正在想象一个潜在的用例,其中希望在 pyspark 中提取数据,对其进行预处理,为 ML 作业选择特征,然后尝试不同的 ML 模型并选择最佳模型。在没有火花的情况下,我可能会为“加载数据”、“预处理数据”和“特征工程”的每个步骤设置单独的组件。但是,由于上述问题,最好在流水线中一步完成所有这些,将输出保存在某个地方,然后为每个模型专用单独的流水线组件并并行训练它们?

您能分享任何其他潜在的用例吗?提前非常感谢!

【问题讨论】:

    标签: apache-spark kubernetes kubeflow kubeflow-pipelines


    【解决方案1】:

    Spark 通常是一个内存处理框架,您可以避免不必要的写入/读取文件。我相信最好在一项任务中完成一项 spark 工作,这样您就不需要在任务之间共享 spark 会话和“中间”结果。来自加载数据/预处理/特征工程的数据最好在使用/不使用 kubeflow 的情况下进行序列化/存储(想想银/铜/金)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 2018-10-23
      • 2019-11-01
      相关资源
      最近更新 更多