主要观点:
- 即将在版本 10.0 中弃用
pandas
和dask
后端并将其移除。 pandas
后端与默认的 DuckDB 后端无功能差距,但 DuckDB 性能更优,pandas
DataFrame 仍可作为获取和输出数据的格式。- 弃用
pandas
后端的原因包括与 Ibis 数据分析模型不匹配、NaN
与NULL
的处理差异、数据类型问题以及易误导新用户等。 - DuckDB 后端具有易安装、本地运行、速度快、与 Python 生态系统交互良好等优点,可无缝查询
pandas
DataFrame 等。
关键信息:
- 早期 Ibis 只有 Impala 后端,后添加 Postgres 后端,为方便新用户引入
pandas
后端。 pandas
是 eager 引擎,Ibis 是 deferred 执行模型,使pandas
后端常比直接用pandas
慢,且有数千行仅用于pandas
后端的代码。- 很久以前选择用
NaN
表示pandas
中的缺失值,这导致与其他后端处理缺失值的方式不同。 - 新用户常因尝试
pandas
后端而觉得 Ibis 慢,若尝试 DuckDB 或 Polars 则更易上手。 - DuckDB 后端可无缝处理
pandas
DataFrame 等多种格式,是默认后端的原因。
重要细节:
- 早期 Ibis 后端情况及添加过程。
pandas
与 Ibis 模型差异导致的性能等问题。NaN
与NULL
处理方式的不同及影响。- 新用户对 Ibis 速度的误解及不同后端的体验差异。
- DuckDB 后端的优势及与
pandas
后端的对比。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。