gpt4 book ai didi

java - 在这种情况下如何编写MapReduce代码?

转载 作者:行者123 更新时间:2023-12-02 22:05:55 24 4
gpt4 key购买 nike

说我有一个输入文件如下

dept_id emp_id  salary
1 13611 1234
2 13609 3245
3 13612 3251
2 13623 1232
1 13619 6574
3 13421 234

现在,我想找到每个部门的平均工资。类似于以下Hive查询:
SELECT dept_id, avg(salary) FROM dept GROUP BY dept_id

这将返回输出:
dept_id avg_sal
----------------
1 3904.0
2 2238.5
3 1742.5

现在,我想做的是生成相同的输出,但是要使用mapreduce框架。那怎么写呢?提前致谢!

最佳答案

IMPORTANT: Before attempting to implement this, first try some basic examples in MapReduce, like implementing a word count program, to understand the logic and even before that, read a book or a tutorial about how MapReduce works.



汇总事物(例如求平均值)的想法是,在 map 阶段按键(部门ID)分组,然后在缩减阶段减少特定部门的所有薪水。

以更正式的方式:

map :

输入:代表工资记录的一行(即dep_id,emp_id,salary)
输出(键,值):(dep_id,薪水)

减少:

输入(键,值):( dep_id,salaries:具有此dep_id的薪水值列表)
输出(键,值):(dep_id,avg(salaries))

这样,属于同一部门的所有薪水将由同一reduce处理。在 reducer 中,您要做的就是找到输入值的平均值。

关于java - 在这种情况下如何编写MapReduce代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com