我有一堆python文件,为各种数据源做端到端的文件处理。Luigi每天运行熊猫脚本?
例如,survey.py会用熊猫读取文件,添加列,重命名内容,做一些计算,然后将修改的文件保存回磁盘。
driver.py将遵循该文件的相同过程等。对于几十个文件,这种结构正在发生。
然后我有一个名为process_all的文件,它基本上只是以某种顺序运行每个python文件(某些文件依赖于其他文件)。经过进一步的研究,我偶然发现了一个名为luigi的图书馆,看起来如果我需要扩大规模,它似乎更加强大地完成了同样的任务。
问题:我是否继续编写独立的.py文件来处理数据,还是我将所有这些东西放在我的类中luigi?我假设每个原始文件都有一个类将被处理,对吗?
或者我可以写出luigi类中的所有处理步骤,例如下面的CleanDriver类?这似乎会变得非常冗长,因为很多这些单独的代码文件都是20-50行,而且有很多。
class CleanSurvey(luigi.Task):
date_interval = luigi.DateIntervalParameter()
def run(self):
os.system('../py_files/run_ftp.py')
def output(self):
return luigi.LocalTarget(path + 'test_survey.csv')
class CleanDriver(luigi.Task):
date_interval = luigi.DateIntervalParameter()
def run(self):
df = pd.read_csv('../file.csv')
df['col5'] = do stuff
df.rename(columns={:}, inplace=True)
def output(self):
return luigi.LocalTarget(path + 'test_driver.csv')
if __name__ == '__main__':
luigi.run
哦,顺便说一句。我从来没有在我的任何代码中使用过类,所以我不习惯它。 – trench