我有一个像这样的文件.txt
1036177 19459.7356 17380.3761 18084.1440
1045709 19674.2457 17694.8674 18700.0120
1140443 19772.0645 17760.0904 19456.7521
其中第一列表示Key,其他列表示值。 我想对每列进行标准化(最小 - 最大),然后对列进行总结。
有人可以就MapReduce中的方法给我一些建议吗?
答案 0 :(得分:0)
从算法的角度来看,您需要:
ArrayWritable
包装器您可能希望使用Apache Pig,它可以使此任务更容易(未经测试):
grunt> A = LOAD '/path/to/data.txt' USING PigStorage(' ')
AS (key, fld1:float, fld2:float, fld3:float);
grunt> GRP = GROUP A BY key;
grunt> B = FOREACH GRP GENERATE $0, MIN(fld1), MAX(fld1), SUM(fld1),
MIN(fld2), MAX(fld2), SUM(fld2),
MIN(fld3), MAX(fld3), SUM(fld3);
grunt> STORE B INTO '/path/to/output' USING PigStorage('\t', '-schema');