MapReduce和Hive的结合

时间:2014-01-17 04:11:03

标签: java hadoop mapreduce hive

我们可以使用combination HiveMapReduce

吗?

说:我有一个csv文件。我需要找到列的mean,并用均值(replace null with mean)替换空数据。

所以我们是否可以在驱动程序中编写hive query(找到平均值)然后写一个mapreduce块来用null替换null。

哪种方式更好

  1. 仅编写mapreduce代码或
  2. 使用hive和mapreduce的组合。

2 个答案:

答案 0 :(得分:2)

这是另一个可以使用( only hive

解决的答案

说你的csv输入是这样的:

firstname,secondname,score,group

维杰,库马尔,123,CSE

萨蒂什南比亚,巴布,,它

库马尔nagendra,200,EIE

阿尼尔,巴布,,它

然后应用这样的查询(我运行它):

hive> from students s join (select avg(score)as avg from students) a
> select s.firstname,
> case
> when s.score="" or s.score=NULL then  cast(avg AS string)
> else s.score
> end as new_score ;

总MapReduce作业= 2

输出:

firstname       new_score

vijay 123

苦恼161.5

kumar 200

anil 161.5

所花费的时间:67.059秒,摘录:4行

答案 1 :(得分:0)

根据我的观点,

最好只编写mapreduce代码。(使用job1查找均值,然后只映射job2来替换哪个很容易)。蜂巢与MR的组合会有点混乱(原因是你要在一个代码中编写,必须将它运送到群集节点一个jar,我们不能说这些任务将在哪里运行,我的意思是hive命令执行的地方点ll)。

希望这会有所帮助。谢谢:))