【问题标题】:How to divide map-reduce tasks?如何划分 map-reduce 任务?
【发布时间】:2017-02-13 12:54:56
【问题描述】:
我有一个包含 200 列的表,其中我需要列表中提到的大约 50 列,
以及根据列“时间戳”的过去 24 个月的行。
我对 mapper 下的内容和 reducer 下的内容感到困惑?
由于它只是转换,它是否只有映射器阶段,或者持续 24 个月的行过滤将归于减速器?我不确定这是否完全利用
map-reduce 是做什么用的。
我正在使用带有 hadoop 流的 python。
【问题讨论】:
标签:
python
hadoop
mapreduce
hadoop-streaming
【解决方案1】:
因此,您有一个包含 200 列(例如 T)的表,要从 T 中挑选的单独条目列表(例如 L)以及过去 24 小时(来自 T 中的时间戳)。
MapReduce,mapper 确实按顺序从 T 给出条目。在您的映射器进入 map() 之前,即在 setup() 中放置要从 L 读取的代码块并使其方便(使用可行的数据结构来保存数据列表)。现在,您的代码应该包含两个检查/条件 1) 如果 T 中的条目包含/匹配 L。如果是,则检查 2) 数据是否在 24 小时范围内。
完成。你的输出是你所期望的。不,这里需要 reducer,至少要做到这一点。
快乐的 Mapreducing。