gpt4 book ai didi

apache-spark - 如何一次读取流数据集并输出到多个接收器?

转载 作者:行者123 更新时间:2023-12-04 05:36:29 29 4
gpt4 key购买 nike

我有一个 Spark Structured Streaming Job,它从 S3 读取数据,转换数据,然后将其存储到一个 S3 接收器和一个 Elasticsearch 接收器。

目前,我正在做 readStream一次又一次writeStream.format("").start()两次。这样做时,Spark 似乎从 S3 源读取数据两次,每个接收器一次。

是否有更有效的方法来写入同一管道中的多个接收器?

最佳答案

Currently, I am doing readStream once and then twice writeStream.format("").start().



您实际上创建了两个单独的流查询。 load -part 是描述第一个(也是唯一一个)流媒体源。这在执行方面没有任何作用。

When doing so it seems that Spark read the data twice from S3 source, per each sink.



这是描述 Spark Structured Streaming 的查询如何工作的最正确方法。接收器的数量对应于查询的数量,因为一个流式查询可以恰好有一个流式接收器(请参阅位于任何流式查询后面的 StreamExecution)。

您还可以检查线程数(使用 jconsole 或类似方法),因为 Structured Streaming 使用一个 microBatchThread每个流式查询的线程(请参阅 StreamExecution )。

Is there a more efficient way to write to multiple sinks in the same pipeline?



不是 在 Spark Structured Streaming 的当前设计中是可能的。

关于apache-spark - 如何一次读取流数据集并输出到多个接收器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46295205/

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