使用 Apache Spark 进行嵌套迭代?

nested iterations with Apache Spark?

我正在考虑将 Apache Spark(在 java)用于一个项目,但是这个项目需要数据处理框架来支持嵌套迭代。我还没有找到任何证实,它支持它吗? 另外,有没有使用嵌套迭代的例子?

谢谢!

几乎任何事情都可以做,但问题是什么适合执行模型足以打扰。 Spark 的操作本质上是并行的,而不是迭代的。也就是说,一些操作并行发生在一堆数据上,而不是对每个数据顺序发生一些事情(然后再次发生)。

然而,Spark(驱动程序)程序只是一个程序,可以在本地做任何你想做的事。当然,嵌套循环或任何你喜欢的都完全可以,就像在任何 Scala 程序中一样。

我认为您可以将 Spark 操作用于分桶过程并计算每个分桶的汇总统计信息,否则 运行 驱动程序本地逻辑的简单剩余部分。

所以流程是:

  • 广播分桶方案
  • 在分布式操作中根据该方案进行存储
  • 向驱动程序拉取小摘要统计数据
  • 更新分桶方案并再次发送
  • 重复...