私はluigiいくつかのpysparkライブラリを含むpythonタスクを持っています。今私はspark-submitでmesosにこのタスクを提出したいと思います。それを実行するにはどうすればよいですか?以下は、私のコードのスケルトンです:ルイジなしspark-submitとpysparkでluigiタスクを実行するには
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()
、私は次のコマンドラインとして、このタスクをsubmmittingよ:
/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
今の問題は、私がすることができますどのようルイージタスクをスパーク、提出されmy_module.pyが最初に終了する必要タスクを持っている場合
luigi --module my_module myClass --local-scheduler --date 2016-01
もう一つの質問は、私はそれのためにもっと何かをするか、単に現在のコマンド - と同じに設定する必要がありますか、次のとおりです。ルイジコマンドラインなどが含まライン?
本当にありがとうございました。どうもありがとう。
こんにちはAYあなたのコメントにとても感謝しています。私はすでにSparkSubmitTaskからクラスを継承していますが、代わりにこのクラスを使用できますか?私がMyPySparkTaskを使用している場合は、単にclient.cfgでsparkコマンドを設定してから、「luigi --module task_module MyPySparkTask --local-scheduler --date 2016-01」というコマンドを実行するだけです。 – zuhakasa
1. SparkSubmitTask(上記の例ではMyPySparkTaskのような)ではなくPySparkTaskから継承し、 'main'メソッドでロジックを実装する必要があります。 2.設定はSparkSubmitTaskと同じですが、client.cfgでプロパティを定義したのでしょうか、またはプロパティを上書きしましたか? 3.実行はSparkSubmitTaskを実行するのと似ています – ayun12
ご協力いただきありがとうございます。私が尋ねたいのは、mainメソッドのコードで、my_module.run(sc)を呼び出すことです。しかし、私が知る限り、luigi.Task my_module関数はtask_module.pyから継承していますが、メソッド実行時にはパラメータscはありません。つまり、私はtask_module.pyでこのメソッドをオーバーライドする必要がありますか? – zuhakasa