8.1 Mapreduce输入输出类型
1.1 Mapreduce输入输出类型
(1)map和reduce输入输出类型一致性
Map输入输出类型可以不用,但是map的输出和reduce的输入类型要一致,reduce的输入输出也可不一样。
Map(K1,V1)àlist(K2,V2)
Reduce (K2,list(V2))->list(K3,V3)
如果包含combine函数,如果combine函数和reduce函数一致,则K2和K3一样,V3和V2相同。
Map(K1,V1)àlist(K2,V2)
Combine (K2,list(V2))->list(K2,V2)
Reduce (K2,list(V2))->list(K3,V3)
Partition函数是对键值对进行分区处理的,所有的键值会被分成若干个区,分区存储。Partition函数返回的是分区的索引值。分区完全由K2决定。分区数等于作业的reduce任务个数。键的哈希码被转换成一个非负整数,它由哈希值和最大的整型值做一次按位与操作,然后用分区数进行取模操作,来决定该记录属于哪个分区索引。
Partition(K2,V2)àinteger
(2)Mapreduce类型显示设置
由于java的泛型机制,存在类型擦除,导致运行过程中类型信息并非一直可见,所以hadoop不得不进行明确设定。如果中间结果的类型与输出类型不一致,需要调用setMapOutputKeyClass()等方法显示设置,如果没有显示设置,默认为输出类型。所以可以用少量数据测试下类型是否兼容。可显示设置的类型
新mapreduceAPI中设置的类型
旧mapreduceAPI中设置的类型
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2019-01-30 java集合