将luigi管道应用于多个文件

时间:2019-06-22 11:28:40

标签: python python-3.x etl luigi

我有报废的数据,想使用luigi进行处理。实际上,我已经进行了所有转换。现在,我正在处理如何将所有文件传递到luigi管道。 我有外部任务正在返回我的抓取数据的文件名,该数据在glob生成的列表中被调用。从每个输入文件中,我正在清理并转换输出

函数是我调用管道的第一步,如下所示:

if __name__ == '__main__':
    luigi.build([l.Load()], local_scheduler=False)
class ReadFile(luigi.ExternalTask):
    filename = luigi.Parameter()

    def output(self):
        return luigi.LocalTarget(str(self.filename))


class ExtractRawFiles(luigi.Task):
    scrape_date = ''
    scrape_hour = ''

    def output(self):
        return luigi.LocalTarget(f'{LUIGI_RAW_DIRECTORY}/{self.scrape_date}_{self.scrape_hour}.csv')

    def requires(self):
        for input_filename in glob.glob(f'{conf.RAW_DATA_DIRECTORY}/**/*.csv', recursive=True):
            yield ReadFile(input_filename)

    def run(self):
        for i in self.input():
            df.to_csv(f'{LUIGI_RAW_DIRECTORY}/{self.scrape_date}_{self.scrape_hour}.csv')

所以问题是。什么是在多个文件上应用管道的最佳方法。

  • 将文件作为luigi构建的参数传递?
  • 应用读取luigi管道中的所有文件

0 个答案:

没有答案