You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ibis Memtable中设置Pandas/DuckDB后端及指定计算引擎

Ibis后端选择问题解答

首先看你编写的函数(注意原函数里有个笔误,to.to_arrow()应该改为t.to_arrow()):

import ibis

def my_function(df):
    t = ibis.memtable(df)
    t = t.mutate(ibis._['a'] + 1)
    return t.to_arrow()

问题解答

  1. 传入Pandas DataFrame时,t使用哪个后端?
    当你通过ibis.memtable(df)传入Pandas DataFrame时,默认会使用DuckDB后端执行计算。Ibis的memtable接口默认依赖DuckDB作为内存计算的后端,不管输入数据格式是Pandas还是其他类型。

  2. 如何强制使用Pandas后端?
    需要显式创建Pandas后端的连接,再将输入的DataFrame注册为该连接下的表,后续操作就会基于Pandas后端执行:

import ibis

def my_function(df):
    # 初始化Pandas后端连接
    con = ibis.pandas.connect()
    # 将DataFrame注册为Pandas连接下的表
    t = con.create_table("temp_table", df)
    # 执行计算
    t = t.mutate(a_plus_1=ibis._['a'] + 1)
    return t.to_arrow()
  1. 如何强制使用DuckDB后端?
    虽然默认就是DuckDB后端,但可以显式创建DuckDB内存连接来确保行为一致,避免环境配置影响:
import ibis

def my_function(df):
    # 初始化DuckDB内存连接
    con = ibis.duckdb.connect()
    # 将DataFrame注册为DuckDB连接下的内存表
    t = con.create_table("temp_table", df)
    # 执行计算
    t = t.mutate(a_plus_1=ibis._['a'] + 1)
    return t.to_arrow()

内容的提问来源于stack exchange,提问作者ignoring_gravity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:53:22