gpt4 book ai didi

python - 通过Hadoop Streaming运行Python MapReduce脚本时获取 “ValueError: No Json object could be decoded”

转载 作者:行者123 更新时间:2023-12-02 21:33:13 24 4
gpt4 key购买 nike

我试图通过流在Hadoop上运行一个简单的python mapreduce脚本。映射器部分加载一个json文档,从属性中读取文本,并以1发出文本中的每个单词,稍后由脚本的reducer部分进行汇总。该代码在Hadoop外部运行良好。提交到Hadoop后,该映射将失败,并显示“ValueError:无法解码Json对象”。错误线是带有“json.loads()”函数的那一行。我对此深感困惑。我正在尝试运行的Hadoop生态系统是板载Python 2.6.6的HortonWorks沙箱。还有其他人遇到类似的问题吗?

最佳答案

好吧,经过反复摆弄脚本后,我发现执行以下操作时问题消失了:

  • 在映射器和化简器文件的顶部使用#!/usr/bin/env python2。该shebang特别指定了要用于执行的Python运行时版本2.X。
  • 在发出Hadoop流命令时使用以下表示法:
    hadoop jar hadoop-streaming.jar -files mapper.py,reducer.py -mapper 'python mapper.py' -reducer 'python reducer.py' -input <hdfs path to input file(s)> -output <hdfs path to output directory>

  • 应用这些修改后,问题不再出现。去搞清楚!

    关于python - 通过Hadoop Streaming运行Python MapReduce脚本时获取 “ValueError: No Json object could be decoded”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33525524/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com