【发布时间】:2020-05-11 21:03:11
【问题描述】:
我们有几个进程使用 SQLAlchemy 从数据库中提取数据,然后使用 Pandas 来操作数据。我在我的 sql 中将cast() 拉到更小的数据类型吗?还是我作为较小的数据类型加载到我的数据框中?
df = pd.read_sql("select cast(column_name as smallint) from schema.table;")
对
df = pd.read_sql("select column_name from schema.table;", dtype={"column_name": "int8"})
有没有办法改变默认的熊猫数字类型。好像默认int64
【问题讨论】:
-
查询通常返回多少行?在典型情况下,您需要这些行的全部还是大部分?如果没有,您是否考虑过尝试编写更具体的查询?另外,根据架构,数据库中实际存储的数据类型是什么?
-
所以我们实际上有许多类似的过程作为 diff etl 作业的一部分。我的目标是制定一些更好的实践来限制我们的云成本。大多数情况下,我们确切地知道查询需要哪些列,但是每天和不同工作的行数/数据大小存在差异。
标签: python pandas memory sqlalchemy