【发布时间】:2019-04-26 09:54:54
【问题描述】:
Apache 气流平台中有一个任务,它使用 SQL 通过 pandas 数据框提取数据。数据大小超过600k。下面是代码:
def stage1_data_extract(**kwargs):
sql="some sql logic"
df1 = pd.read_sql(sql, conn)
df1 = df1.loc[:, ~df1.columns.duplicated()]
return df1
我观察到,当 Apache 气流任务在任务中返回上述数据帧时,Apache 气流挂起,我需要手动终止所有进程以使服务器重新启动并运行。
看起来气流任务的资源/内存不足,无法返回 600k 容量的数据帧。
我有几个问题:
airflow如何为每个任务分配内存容量/资源,是airflow运行所在服务器的RAM容量吗?
有没有办法通过增加服务器的 RAM 容量来增加特定任务的内存容量,或者如何做到这一点?
建议是否有办法在气流中处理这种内存密集型任务或任何更好的方法来处理这种情况。
还让我知道一个任务是如何在气流中获得其内存分配的。
【问题讨论】:
标签: python-3.x pandas airflow