gpt4 book ai didi

apache-flink - 为什么Flink中的env.readTextFile(...).first(10).print会读取所有数据?

转载 作者:行者123 更新时间:2023-12-02 21:03:08 24 4
gpt4 key购买 nike

当我只想获取 Apache Spark 中的前 N ​​条记录时,我使用:

sc.textFile(path_to_files).take(10)

它将快速返回并给出前 10 行文本。当我在 Apache Flink 中执行类似操作时:

env.readTextFile(path_to_files).first(10).print()

它会在返回结果之前完整读取所有文件。这是为什么?

最佳答案

Flink 使用管道(基于流)执行模型。因此,当启动程序时,源只是开始消费数据,而不知道下游运算符。因此,所有数据都会被读取,并且 first(10) 仅返回 10 条记录。

由于流水线执行模型,很难应用优化来提前停止源。想象一下,中间可能存在过滤器、聚合等,因此源无法知道必须读取多少数据才能最终得到 10 条最终结果记录。

关于apache-flink - 为什么Flink中的env.readTextFile(...).first(10).print会读取所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331548/

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