Apache spark 在运行SparkSubmitTask之前删除HdfsTarget
Apache spark 在运行SparkSubmitTask之前删除HdfsTarget,apache-spark,luigi,Apache Spark,Luigi,社区,我想在运行SparkSubmitTask之前删除HdfsTarget文件夹。最佳做法是什么?到目前为止,我尝试了所附代码中提到的两个选项,但没有成功:
如果HdfsTarget已存在,则不会执行从属/必需作业
如果使用yield
导入luigi
导入luigi.format
导入luigi.contrib.hdfs
来自luigi.contrib.spark导入SparkSubmitTask
类清理(luigi.Task):
path=luigi.Parameter()
def运行(自):
社区,我想在运行SparkSubmitTask
之前删除HdfsTarget
文件夹。最佳做法是什么?到目前为止,我尝试了所附代码中提到的两个选项,但没有成功:
如果HdfsTarget
已存在,则不会执行从属/必需作业
如果使用yield
导入luigi
导入luigi.format
导入luigi.contrib.hdfs
来自luigi.contrib.spark导入SparkSubmitTask
类清理(luigi.Task):
path=luigi.Parameter()
def运行(自):
self.target=luigi.contrib.hdfs.HdfsTarget(self.path,format=luigi.format.Gzip)
如果self.target.exists():
self.target.remove(跳过垃圾=True)
类MySparkTask(SparkSubmitTask):
输出=luigi.Parameter()
驱动程序\u内存='8g'
执行器_内存='3g'
执行者数量=5
app='我的app.jar'
entry_class='com.company.MyJob'
def应用程序_选项(自):
返回['/input',self.output]
def需要(自我):
(1)
def输出(自):
返回luigi.contrib.hdfs.HdfsTarget(self.output,format=luigi.format.Gzip)
类RunAll(luigi.Task):
结果_dir='/output'
''触发其他任务执行的虚拟任务''
def需要(自我):
(2)
返回MySparkTask(self.result\u dir)