【发布时间】:2023-03-13 18:05:01
【问题描述】:
考虑一个场景(对象和依赖是Scala类):
有一组依赖项本身需要实例化大量数据(来自数据库的数据)。 有一组具有复杂嵌套层次结构的对象存储对这些依赖项的引用。
当前的工作流程包括:
- 从数据库加载依赖数据并实例化它们 (以一种非常复杂的方式相互依赖)。
- 加载对象 来自数据库的数据并使用先前实例化对象 加载的依赖项。
-
在对象列表上运行操作,例如:
a. Search with a complex predicate b. Transform c. Filter d. Save to the database e. Reload from the database
我们正在考虑在多台机器上运行这些操作。一种选择是使用Spark,但不清楚如何正确支持数据序列化和分发/更新依赖项。
即使我们能够将对象中的逻辑与数据分离(使对象易于序列化),我们想要在对象上运行的函数仍将依赖于上述复杂的依赖关系。
此外,至少目前,我们没有计划使用任何需要在机器之间混洗数据的操作,我们需要的只是分片。
Spark 看起来适合这种情况吗?
- 如果是,如何处理复杂的依赖关系?
- 如果不是,希望能提供任何可以处理工作流的替代系统的指针。
【问题讨论】:
标签: scala apache-spark distributed-computing