MapReduce阶段随笔

1.排序

1.1在使用实现Writable或WritableComparable接口来实现排序时,要注意,MapReduce底层的实现代码是根据map传回的key值来进行数据的排序的。如果想要实现基于value值得排序可以先在map中做数据的处理(例如:将前<K,V>键值对作为新的键值对的键也就是<<K,V>,V>)。
1.2=重写compareTo方法排序时,如果返回值为1,则当前对象与比较对象升序排列。如果返回值为-1,则当前对象与比较对象降序排列。返回值为0则同序。

2.获取文件时的编码问题

在我们学习测试时经常在本地创建文件,然后通过rz命令上传文件到虚拟机上,但是由于不注意编码的问题,MapReduce结束后输出的结果就会出现乱码,尤其是中文,因为MapReduce的底层编码写死的就是UTF-8。这时我们可以将上传的文件修改编码格式为UTF-8。但是这时还会出现一些编码问题,例如在做map端join操作的编码测试时,有可能会出现存入map的数据无法通过key(key的类型为String时)来获取,检查代码发现完全没有问题,最后发现在传入的key中加上\uFEFE就能获取到了,不理解是什么原理,大概是因为编码问题。找了好久解决不了,最后想了一个方法可以不用担心编码问题。可以直接在虚拟机上创建我们的测试数据的文件,这样不管中文,英文,都可以不用再担心编码问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值