流水线(Pipeline)技术,如其名,参考了工厂生产中的流水线概念,将一个任务分为多个步骤进行。从而达到并发运行的目的。
计算机中的流水线(Pipeline)技术是一种将每条指令拆分为多个步骤,多条指令的不同步骤重叠操作,从而实现几条指令并行处理的技术。现代 CPU 指令采用了流水线设计,将一条 CPU 指令分为取指(IF)、译码(ID)、执行(EX)、访存(MEM)、回写(WB)五级流水线来执行。(如下图1所示)
CPU指令设计模式
spark MLlib流水线计算模式实例
在一个流水线中,上一个PipelineStage的输出,恰好是下一个的输入。流水线的各个阶段按顺序进行,输入的DataFrame在通过每个阶段时会被转化,对于转换器阶段,在DataFrame上会调用transform()方法,对于评估器阶段,先调用一个fit()方法来生成一个转换器,然后再调用其transform方法。
流水线模式广泛使用于机器学习中,如下图是一个机器学习过程的流水线过程示意图。
大致分为三个阶段:1. 数据转换; 2. 特征提取; 3. 评估并验证。下面以文本特征识别为例,讲述三个过程。
自己动手实现一个pipeline,先记下来