2015-11-06 45 views
1

目前,我已将Spark Stream与Kafka集成到Java中,并能够汇总统计信息。但是,我无法找到将结果存储到Java对象的方法,因此我可以使用不同的方法/类将结果传递给对象,而无需将它们存储到数据库中。我花了相当长的时间在线搜索教程/示例,但所有这些最终都使用print()在控制台中显示结果。但是,我想要做的是在用户调用rest-api端点时返回这些结果的JSON字符串。将Spark Stream中的结果提取到Java对象中

是否有可能让这些结果在内存中,并用不同的方法传递给它们,或者我需要先将它们存储到数据库中,然后根据需要从中获取它们?

回答

0

如果我明白你的意思,你想通过Rest API使用Spark Streaming的结果。

即使有一些方法可以直接完成此操作(例如使用Spark SQL/Thrift服务器),我会分开这两个任务。否则,如果您的Spark Streaming流程失败,则您的服务/ REST-API层也会失败。

因此,将这两层分开有其优点。你不会被迫使用经典的数据库。您可以实现一个服务,该服务实现/使用JCache并将Spark流处理结果发送给它。