scala - Apache Spark和域驱动设计

标签 scala apache-spark apache-spark-sql spark-streaming spark-dataframe

我有些抽象的问题。最近,我在Scala中使用Apache Spark(还包括流技术和SQL)很多。我的大多数Spark作业基本上将RDD/Dataframe从一个类移到另一个类,其中每个类对输入执行一些转换。

最近,我也一直在阅读有关域驱动设计的文章,这使我开始思考如何使用DDD对Spark程序进行建模。我要说的是,与使用DDD概念的非Spark代码相比,为Spark代码建模要困难得多(也许是因为它主要执行转换或IO)。我大概可以考虑如何创建一种普遍存在的语言,而不是如何在Spark代码本身中实际应用它。

我尝试谷歌搜索如何将Spark与DDD结合使用,但找不到任何相关信息,所以我想知道:

  • 我只是缺少关于如何在Spark代码上应用DDD概念的东西吗?
  • 也许Spark作业过于关注ETL,以至于它们实际上不需要使用DDD?如果不是这种情况,有人可以解释她/他如何在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/

    相关文章:

    python - 使用什么命令来检查 scala REPL 中的实例?

    scala - scala 中 foldright 和 foldleft 的参数顺序

    apache-spark - Spark 如何并行处理 1TB 文件?

    apache-spark - Spark SQL : INSERT INTO statement syntax

    java - Scala:Trait Companion Object 在 Java 中不可见

    scala - 如何仅在条件为真时返回?

    apache-spark - Spark Linear Regression With SGD 对特征缩放非常敏感

    apache-spark - PySpark 数据框 to_json() 函数

    json - Spark sql 的 from_json 返回空值

    scala - 向 Spark 数据帧中的列添加常量值