我有一个 C++ 库,它是针对 Apache Arrow C++ 库构建的,并使用 Pybind 绑定到 python。我希望能够在 C++ 中编写一个函数来获取一个用 PyArrow 构建的表,例如:
void test(arrow::Table test);
传入 PyArrow 表,如:
tab = pa.Table.from_pandas(df)
mybinding.test(tab)
如果我像上面那样做一个简单的函数,我会得到:
TypeError: arrow_test(): incompatible function arguments. The following argument types are supported:
1. (arg0: arrow::Table) -> None
Invoked with: pyarrow.Table
我还尝试编写一个需要 a 的函数,py::object
但.cast<arrow::Table>()
我无法进行强制转换:
RuntimeError: Unable to cast Python instance to C++ type (compile in debug mode for details)
有谁知道如何让它工作?