从Excel原子读取(用于luigi工作流)

时间:2018-10-08 00:31:03

标签: python pandas luigi

我正在尝试使用select u.email from users u join permissions p on p.user_id = u.id where not exists ( Select 1 from releases r where r.App_id = p.app_id) 使用内置(原子)luigi方法在Luigi工作流程中打开excel文件。

如果pandas.read_excel()是我的excel文档的luigi目标,我想做类似的事情:

self.input()

或更笼统地说:

with self.input().open('r') as f: pandas.read_excel(f)

但是,这给了我一个错误: with open(filename) as f: pandas.read_excel(f)

免责声明:

excel文件来自外部任务,因此我无法控制它是在哪种计算机上制造的,或者是否包含NA或空白单元格。

1 个答案:

答案 0 :(得分:1)

问题是我的self.input()(指向保存我的excel文件的位置)应该使用format = Nop。我的luigi目标应该返回以下内容:

luigi.LocalTarget('excelfile.xlsx', format=luigi.format.Nop)

有了这个目标定义,我可以使用以下原子来阅读:

with self.input().open() as f:
    df = pd.read_excel(f)