繁体   English   中英

如何使用spark-submit和pyspark运行luigi任务

[英]How to run a luigi task with spark-submit and pyspark

我有一个luigi python任务,其中包括一些pyspark libs。 现在我想通过spark-submit在mesos上提交此任务。 我该怎么做才能运行它? 下面是我的代码框架:

from pyspark.sql import functions as F
from pyspark import SparkContext

class myClass(SparkSubmitTask):
# date = luigi.DateParameter()

  def __init__(self, date):
    self.date = date # date is datetime.date.today().isoformat()

  def output(self):

  def input(self):

  def run(self):
    # Some functions are using pyspark libs

if __name__ == "__main__":
  luigi.run()

没有luigi,我将此任务作为以下命令行提交:

/opt/spark/bin/spark-submit --master mesos://host:port --deploy-mode cluster --total-executor-cores 1 --driver-cores 1 --executor-memory 1G --driver-memory 1G my_module.py

现在的问题是我如何激发提交包含luigi命令行的luigi任务,例如:

luigi --module my_module myClass --local-scheduler --date 2016-01

还有一个问题是,如果my_module.py首先需要完成任务,我是否需要为此做更多事情或者只设置与当前命令行相同的内容?

我真的很感激任何提示或建议。 非常感谢。

Luigi有一些模板任务。 其中一个名为PySparkTask。 您可以从此类继承并覆盖属性:

https://github.com/spotify/luigi/blob/master/luigi/contrib/spark.py

我没有测试过,但根据我对luigi的经验,我会试试这个:

import my_module


class MyPySparkTask(PySparkTask):
    date = luigi.DateParameter()

    @property
    def name(self):
        return self.__class__.__name__

    @property
    def master(self):
        return 'mesos://host:port'

    @property
    def deploy_mode(self):
        return 'cluster'

    @property
    def total_executor_cores(self):
        return 1

    @property
    def driver_cores(self):
        return 1

    @property
    def executor-memory(self):
        return 1G

    @property
    def driver-memory(self):
        return 1G

    def main(self, sc, *args):
        my_module.run(sc)

    def self.app_options():
        return [date]

然后你可以运行它:luigi --module task_module MyPySparkTask --local-scheduler --date 2016-01

还有一个选项可以在client.cfg文件中设置属性,以使它们成为其他PySparkTasks的默认值:

[spark]
master: mesos://host:port
deploy_mode: cluster
total_executor_cores: 1
driver_cores: 1
executor-memory: 1G
driver-memory: 1G

暂无
暂无

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

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