我有一堆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