如何解决Hive上的“自定义地图简化程序”,规则是什么?输入和输出怎么样?
| 我被困了几天,因为我想根据我在hive上的查询创建一个自定义的map reduce程序,在谷歌搜索后发现没有很多示例,我仍然对该规则感到困惑。 创建自定义mapreduce程序的规则是什么,mapper和reducer类如何? 谁能提供任何解决方案? 我想用Java开发此程序,但仍然受阻,然后在收集器中格式化输出时,如何在mapper和reducer类中格式化结果? 是否有人想给我一些有关这种事情的例子和解释?解决方法
从本质上讲,有两种将自定义映射器/化简器添加到配置单元查询的方法。
用
transform
使用\'script \'作为事物1,从表1中选择SELECT TRANSFORM(stuff1,stuff2),
事2
其中stuff1,stuff2是table1中的字段,而script是任何接受我稍后描述的格式的可执行文件。 Thing1,Thing2是脚本的输出
使用地图和减少
FROM (
FROM table
MAP table.f1 table.f2
USING \'map_script\'
AS mp1,mp2
CLUSTER BY mp1) map_output
INSERT OVERWRITE TABLE someothertable
REDUCE map_output.mp1,map_output.mp2
USING \'reduce_script\'
AS reducef1,reducef2;
这稍微复杂些,但可以提供更多控制。有两个部分。在第一部分中,映射器脚本将从table
接收数据并将其映射到字段mp1和mp2。然后将它们传递给reduce_script
,此脚本将在CLUSTER BY mp1
中指定的键上接收排序的输出。请注意,一个减速器将处理多个键。 reduce脚本的输出将进入表someothertable
现在,所有这些脚本都遵循一个简单的模式。他们将从stdin逐行读取。这些字段将以ѭ6分隔,并且将以相同的方式写回到stdout(以\'\\ t \'分隔的字段)
看看这个博客,有一些很好的例子。
http://dev.bizo.com/2009/07/custom-map-scripts-and-hive.html
http://dev.bizo.com/2009/10/reduce-scripts-in-hive.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。