在过去的几个月里,我一直在使用相当多的结构化流来实现流作业(在使用了很多Kafka之后)。在阅读了《使用Apache Spark进行流处理》一书之后,我有这样的问题:有没有什么地方或用例我会使用Spark Streaming而不是Structured Streaming?我应该投入一些时间进入它或因为我已经使用Spark结构化流我应该坚持它,并没有对以前的API的好处。意见/见解
在过去的几个月里,我一直在使用相当多的结构化流来实现流作业(在使用了很多Kafka之后)。在阅读了《使用Apache Spark进行流处理》一书之后,我有这样的问题:有没有什么地方或用例我会使用Spark Streaming而不是Structured Streaming?我应该投入一些时间进入它或因为我已经使用Spark结构化流我应该坚持它,并没有对以前的API的好处。意见/见解
1条答案
按热度按时间7bsow1i61#
Hi分享我的个人经验。
结构化流是基于spark的流实现的未来。它提供了更高的抽象级别和其他很棒的功能。但是限制很少。
由于Spark Streaming提供的灵活性,我不得不在少数情况下切换到Spark Streaming。最近的一个例子是,我们必须使用静态引用数据执行Joins,但是结构化流不支持外部连接。这可以通过Spark Streaming来完成。
在较新的spark版本2.4中,结构化流得到了很大的改进,支持foreachBatch sink,这提供了与spark流类似的灵活性。
我个人的想法是,了解spark streaming是有帮助的,你可能必须根据你的用例来使用它。