Polars read_database将 SQL Server NULL 和空字符串视为相同:如何区分?

Polars read_database Treating SQL Server NULL and Empty String as the Same: How to Distinguish?

提问人:Josh L 提问时间:9/13/2023 更新时间:9/13/2023 访问量:89

问:

我正在使用两个具有相同架构的 SQL Server 表。我正在使用 Polars 库中的 read_database 函数将这些表读入 DataFrame 进行比较。

问题在于,一个表在某些列中具有 NULL 值的记录,而另一个表中的相应记录在这些列中具有空字符串 ('')。我需要在比较逻辑中以不同的方式处理这些情况。

当我使用 Polars 的 read_database 读取表格时,它似乎将 NULL 和空字符串值都转换为 null,因此无法区分它们。

有没有办法让 Polars 在从 SQL Server 读取时保留 NULL 和空字符串之间的区别?

非首选的解决方法是我在 SQL 中使用 CASE 语句将空列值更改为“::EMPTY::”。除此之外,我还没有找到修改read_database函数本身行为的方法。

python sql-server 数据帧 null python-polars

评论

0赞 Dean MacGregor 9/13/2023
您使用的是 ADBC 还是 ConnectorX?如果是后者,您是否尝试过在极地之外使用具有相同查询的 connectorx 来查看它的作用?我猜这不是极地,而是你在上游使用的任何东西。您可以做的另一件事是合并 null 而不是大小写 “”,但这可能更像是一种偏好。
0赞 Josh L 9/13/2023
嘿,迪恩 - 我正在使用 connectorx。你提出了一个关于在极地之外尝试相同查询的好观点 - 我还没有这样做。我可以试一试!

答: 暂无答案