Visitor设计模式与基于Spark RDD的DAG计算

如我们所知,Visitor常用于数据抽象(ADT)与数据处理分离的场合,数据抽象代表某种具有特定数据schem的数据结构,数据处理代表遍历数据结构时实施的处理或者操作。这种设计模式与数据的schema表达式紧密耦合,但是基于特定schema的数据行为却可以丰富多彩。比如常见的double-dispatch(参考Visitor模式与double dispatch),C++容器与容器算法等

对于基于Spark RDD的DAG计算,RDD是不变的数据集合,相当于定义了某种schema,而算子就是针对RDD数据的处理操作,或为转换(Transformation),或为Action,这俨然就是采用了Visitor设计模式,只不过在Spark中,算子之间可以形成依赖(Linage)

猜你喜欢

转载自blog.csdn.net/code_drimver/article/details/83999679