我有些抽象的问题。最近,我在Scala中使用Apache Spark(还包括流技术和SQL)很多。我的大多数Spark作业基本上将RDD/Dataframe从一个类移到另一个类,其中每个类对输入执行一些转换。
最近,我也一直在阅读有关域驱动设计的文章,这使我开始思考如何使用DDD对Spark程序进行建模。我要说的是,与使用DDD概念的非Spark代码相比,为Spark代码建模要困难得多(也许是因为它主要执行转换或IO)。我大概可以考虑如何创建一种普遍存在的语言,而不是如何在Spark代码本身中实际应用它。
我尝试谷歌搜索如何将Spark与DDD结合使用,但找不到任何相关信息,所以我想知道:
我希望这是一个合理的问题-如果不是,我深表歉意
提前致谢
最佳答案
Spark的DSL和DDD是截然不同的抽象。您面临的挑战来自两个抽象之间的“距离”。这是复杂系统设计中的一个常见问题,它表明缺少一种将两者联系起来的抽象概念。在您的情况下,那将是非常适合DDD的抽象,然后通过DSL“生成” Spark转换。 Scala非常适合构建这样的抽象。有关可能的提示,请参阅:https://databricks.com/session/the-smart-data-warehouse-goal-based-data-production
关于scala - Apache Spark和域驱动设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36308265/