繁体   English   中英

如何在 Pyspark 上接连运行多个 Spark 作业?

[英]How do I run multiple spark jobs in series one after another on Pyspark?

目前我有几个 spark-submit *.sh 文件。 每个文件生成一个表,用于下一个文件。

有没有办法依次运行这些文件?

到目前为止,我尝试在一个文件中一个接一个地添加所有火花提交代码并尝试

sh spark_submit_ordered_combined.sh 

在终端。 但这一次启动了所有代码。

任何帮助都会很棒。

您可能需要一个数据管道框架,因为在上一个spark-submit的输出仍在运行时需要“下一个文件”的输入。 Luigi是一个 Python 框架,可帮助您构建所需的批处理作业管道。 一个任务有requires()run()output()方法来控制每个任务之间的工作流和依赖关系。

通过扩展PySparkTask (用于 PySpark)或SparkSubmitTask类并覆盖它们的属性,您的案例中的管道将是:

  • 任务 1 :输出文件 1,不需要任务
  • 任务2 :输出文件2,需要文件1
  • 任务 3 :输出文件 3,需要文件 2
  • ...

这样,一个任务的输入就是另一个任务的输出,依此类推。 如果一项任务失败(如 Task3),则只有 Task3 必须重新提交,因为file1 和 file2 已经存在

看看Apache Airflow

使用气流将工作流创作为任务的有向无环图 (DAG)。 气流调度程序在遵循指定的依赖项的同时在一组工作人员上执行您的任务。

这是Airflow 入门和这篇文章,将Airflow 与 Pyspark 结合使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM