gpt4 book ai didi

rust - DataFusion(Apache Arrow): How to lazily read batches of result?

转载 作者:行者123 更新时间:2023-12-03 11:38:48 25 4
gpt4 key购买 nike

我有一个数据融合查询。我不想等所有批次都待处理,而是想在第一个批次准备好后立即运行一些代码。
这是等待然后处理的代码:

let dataframe = ExecutionContext::new().read_parquet(filename)?;
let batchs = dataframe.collect().await?;

for batch in batchs {
// Do something with the record batch
println!("{:?}", batch.schema());
}
我希望返回的内容不是对BatchRecord数组的 promise ,而是对BatchRecord数组的 promise 。 DataFusion是否提供一种只检索第一个批次而不必等待镶木文件的完整处理的方法?
我目前在启动时有5分钟以上的加载时间,这是不切实际的。直接使用Arrow&Parquet将允许我立即访问第一批(以api/功能交易)。
编辑:一个最小的示例可以在 DataFusion git repository中找到

最佳答案

自2.0.0版本以来,master分支中最近进行了一些更改,以更好地支持异步和流传输,因此值得检查最新代码,但DataFrame collect方法确实将所有结果加载到内存中,然后返回,因此可能不会最好的方法。
在Arrow邮件列表中询问此问题也可能是一个好主意。

关于rust - DataFusion(Apache Arrow): How to lazily read batches of result?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64333797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com