我是hadoop mapreduce和hive的新手。 我想使用Mapreduce程序(在java中)从Hive读取数据并确定平均值。 我不确定如何在mapreduce中实现。请帮我提供示例程序。 我正在使用64位的ibm biginsights来处理hadoop框架。
我无法参考以下链接。无法找到页面错误 https://cwiki.apache.org/Hive/tutorial.html#Tutorial-Custommap%252Freducescripts
答案 0 :(得分:0)
enter code here
您是不是只使用hql和
select avg(my_col) from my_table?
如果你真的需要用Java做,那么你可以使用HiveClient并通过hive jdbc api进行访问。
以下是一个示例代码段(从HiveClient文档中详细说明):
Connection con = null;
Statement stmt = null;
Resulset rs = null;
try {
con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");
stmt = con.createStatement();
rs = stmt.executeQuery("select avg(my_col) as my_avg from my_table");
Double avg = rs.getDouble("my_avg");
// do something with it..
} finally {
// close rs, stmt, conn in reverse order
}
有关详细信息:https://cwiki.apache.org/confluence/display/Hive/HiveClient
注意:您不需要将此代码放入您的map / reduce Hive负责创建map / reduce程序(以及并行化的相关好处)本身。