从 Snowflake 查询到数据类型映射中的 python dataframe 问题
From Snowflake query to python dataframe problem in data type mapping
我在将数据类型从雪花查询转换为 pandas 数据帧时遇到问题。我想尽可能使用较小的数据类型以减少内存使用量。因此,我想将我的 pandas 列放入 int8 或 int16 中作为整数,而不是我目前拥有的 int64。
我的问题如下:
从雪花文档中,我们可以读到:
from a snowflake number we can cast in any integer type in python
我尝试按以下方式转换我的 int 列:
select myvariable::smallint
from mytable
和
select myvariable::number(5,0) -- totaly arbitrary precision, depends on the column
from mytable
应该是更小的数据类型。
但是,这些解决方案中的任何一个都不起作用,我的 pandas 数据框中仍然有 int64 类型。
我没有看到任何要添加到我的雪花连接器或查询中的参数。我知道我可以直接在 python 中转换数据类型,但我希望直接从雪花中进行转换。
如果有人知道这个的解决方案,我会很感兴趣
Snowflake的INTEGER数据类型实际上都是INT64
各种名称(如您的示例中的 SMALLINT)是为了简化从其他系统的移植并建议指定类型的列的预期值范围,但它们仍然是 INT64。
有关详细信息,请查看 here。
您必须直接在 Python 中转换数据类型。
我在将数据类型从雪花查询转换为 pandas 数据帧时遇到问题。我想尽可能使用较小的数据类型以减少内存使用量。因此,我想将我的 pandas 列放入 int8 或 int16 中作为整数,而不是我目前拥有的 int64。
我的问题如下:
从雪花文档中,我们可以读到: from a snowflake number we can cast in any integer type in python
我尝试按以下方式转换我的 int 列:
select myvariable::smallint
from mytable
和
select myvariable::number(5,0) -- totaly arbitrary precision, depends on the column
from mytable
应该是更小的数据类型。
但是,这些解决方案中的任何一个都不起作用,我的 pandas 数据框中仍然有 int64 类型。
我没有看到任何要添加到我的雪花连接器或查询中的参数。我知道我可以直接在 python 中转换数据类型,但我希望直接从雪花中进行转换。
如果有人知道这个的解决方案,我会很感兴趣
Snowflake的INTEGER数据类型实际上都是INT64
各种名称(如您的示例中的 SMALLINT)是为了简化从其他系统的移植并建议指定类型的列的预期值范围,但它们仍然是 INT64。
有关详细信息,请查看 here。
您必须直接在 Python 中转换数据类型。