首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataFusion (Apache Arrow):如何懒惰地读取批量结果?

DataFusion (Apache Arrow):如何懒惰地读取批量结果?
EN

Stack Overflow用户
提问于 2020-10-13 18:51:11
回答 1查看 205关注 0票数 1

我有一个数据流查询。我希望在第一批处理就绪后立即运行一些代码,而不是等待所有批处理完成。

下面是等待然后处理的代码:

代码语言:javascript
复制
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数组的承诺,而是BatchRecord的承诺数组。DataFusion是否提供了一种只检索第一批而不必等待拼图文件完全处理的方法?

我目前在启动时有一个5+min加载时间,这是不实际的。直接使用Arrow & Parquet将允许我立即访问第一批(通过api/功能交易)。

编辑:可以在DataFusion git repository中找到最小的示例

EN

回答 1

Stack Overflow用户

发布于 2020-11-09 11:47:12

自2.0.0版本以来,主分支中有一些最近的更改,以更好地支持异步和流,因此值得检查最新的代码,但DataFrame collect方法确实在返回之前将所有结果加载到内存中,因此这可能不是最好的方法。

在Arrow邮件列表中询问这个问题可能也是个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64333797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档