• Hadoop中文乱码


    实验目的:使用wordcount实现中文无词典分词的功能

    实验背景:文件上传后,进行无词典分词,再进行统计中文词之后,结果在eclipse下显示为乱码

    针对乱码所做实验:

    0)文件直接上传,在eclipse打开显示正常,但结果显示乱码

    1)将文件格式改成UTF-8之后,再上传,结果发现在eclipse下打开是乱码,但在namenode:50070下打开是能显示的,

    2)在1)的基础上,无视eclipse乱码,在mapper中进行无词典切词,输出文件结果在eclipse乱码,而namenode:50070下均能正常显示,当结果不正确

    3)在workspace下,将gbk改成utf-8,输入文件除第一行乱码,其他行显示正常,输出文件结果在eclipse出现部分乱码

    4)在2)的基础上,通过观察文件中输出(由于不能再控制台输出,具体原因不是很清楚),发现字符串下标为0的字符是乱码,所以将下标改成从1开始,结果eclipse和namenode下均显示正常,且结果正确。

    结论及解决之道:

    常规的出现乱码的解决方案: http://hi.baidu.com/liangkejia/item/fc70a83a3e4a7c4f033edc10

    我把文件改成UTF-8,注意把第一行改成是空行,因为我发现,第一行的下标为0的字符是无法显示的,因此我错了这么久。

    再把window->Preference->workspace 下改成UTF-8,其实,这只是影响到eclipse的显示。

    工程右击->Properities下改成UTF-8,这个我自从改过了之后,就不能改成gbk了,所以我也不能判断着是不是有用,总之都是UTF-8总不会有错吧。

    这三步之后,无论是eclipse下,还是在namenode下看到的能正常显示的。

    一些技巧:

    1)拷贝出来,可以看乱码。针对在namenode下还是能显示,但是我把东西从namenode下拷贝出来,放在notepad下结果就出现了乱码,这是才焕然大悟

    2)想方设法把东西输出来,进行调试。很奇怪,我运行成功时,我在map下用print,竟然打印不出来,所以我把东西写到了关键字中,这样我就可以看到啦,所以要想方设法得到这个运行的过程,这样才知道错哪了。

  • 相关阅读:
    [POJ1811]Prime Test
    Pollard-rho算法[因子分解算法]
    Miller-Rabin算法
    [POJ2886]Who Gets the Most Candies?
    Failed to connect to raw.githubusercontent.com port 443
    MAC安装flutter开发环境
    Jenkins自动化打包(Gitlab)并上传蒲公英
    Jenkins中插件下载失败的解决办法
    iOS开发~防止navigation多次push一个页面
    Jenkins 更新 jenkins.war的方法
  • 原文地址:https://www.cnblogs.com/chuanlong/p/3052852.html
Copyright © 2020-2023  润新知