我想创建一个像对象一样的无连接数据框,我可以将其注册到连接,就像我使用箭头或Pandas 数据框一样.
import duckdb
conn = duckdb.connect(":memory:")
df = conn.sql("SELECT * FROM '/tmp/test.csv'")
conn.close()
conn1 = duckdb.connect(":memory:")
conn1.register("test", df)
conn1.execute("SELECT * FROM test")
此代码不起作用,但出现异常:Connection Error: Connection has already been closed
如果我注释conn.close()
,那么它抛出:The relation you are attempting to register was not made from this connection
如果我做df = conn.sql("SELECT * FROM lineitem").arrow()
,它就会起作用,因为中间状态是箭头格式.它实现了,并不依赖于联系.
我是否可以在没有materialized 的情况下在duckdb
中执行类似的操作,而只是创建一个懒惰的数据框,以便在另一个连接中注册和使用?
我希望duckdb对象没有连接,并且我可以在另一个连接上注册它.