`const model = combineModel({...}, analysisModels, dynamicFieldModels)` `const undoableActionTypes = [...]` `function withCancelable (effect: [T, any]): [T, any]` `function withCancelabl... (model: Model): Model {` `const { namespace, effects, reducers } = model` `const modelActionTypes = Object.keys({...})` `const enhancedReducer = getUndoEnhancer (model as any, {...} as Undoabl...
Reducers 的 Partition。 **Shuffle 的过程可以分为两个阶段— Shuffle Write 和 Shuffle Read。** Shuffle Write 的时候,Mapper 会把当前的 Partition 按照 Reduce 的 Partition 分成 R 个新的 Partition,并排序后写到本地磁盘上。生成的 Map Output 包含两个文件:索引文件和按 Partition 排序后的数据文件。当所有的 Mappers 写完 Map Output 后,就会开始第二个阶段- Shuffle Read 阶段。这个时候每个 Reducer 会向所有包含它...
RDD是一个类,它包含了**数据应该在哪算,具体该怎么算,算完了放在哪个地方**。它是能被序列化,也能被反序列化。在开发的时候,RDD给人的感觉就是一个只读的数据。但是不是,RDD存储的不是数据,而是数据的位置,数据的类... 与aggregate类似 第一个括号的参数应用于每个V值 第二括号函数是聚合例如:`_+_`| combineByKey | 合并相同的key的值 rdd1.combineByKey(x => x, (a: Int, b: Int) => a + b, (m: Int, n: Int) => m + n)| p...
Reducers 的 Partition。 Shuffle 的过程可以分为两个阶段— Shuffle Write 和 Shuffle Read。Shuffle Write 的时候,Mapper 会把当前的 Partition 按照 Reduce 的 Partition 分成 R 个新的 Partition 并排序后写到本地磁盘上。生成的 Map Output 包含两个文件:索引文件和按 Partition 排序后的数据文件。当所有的 Mappers 写完 Map Output 后就会开始第二个阶段—Shuffle Read 阶段。这个时候每个 Reducer 会访问所有包含它的 Re...