我创建了一个自定义接收器来从Elastic Search获取与特定查询有关的记录,并实现了流式RDD转换来处理接收器生成的数据。
最终的RDD是名称值对的排序列表,我想以编程方式读取前20个结果,而不是写入外部文件。
我使用" foreach"在RDD上,将前20个值放入列表中。我发现只要接收器有一个新的微量分析器,就会处理forEach。
但是,我希望foreach计算只在接收器完成从Elastic Search中获取所有记录并且在流式上下文被终止之前完成一次,这样我就可以将结果填充到列表中并在我的驱动程序中处理它程序。
答案 0 :(得分:0)
首先你应该创建一个静态空Rdd然后与你的Streaming Rdd联合。一旦您的Streaming上下文停止,请应用foreach来计算静态Rdd。