擅长:python、mysql、java
<p>在这种情况下,不能在本地测试程序。在</p>
<p>当您运行Hadoop流时,<code>os.environ['map_input_file']</code>将由Hadoop框架设置,以便您可以获得文件名。但是,当你在本地运行时,没有人为你设置。在</p>
<p>所以不要在本地机器上测试它,只需在Hadoop上运行它。在</p>
<p>顺便说一句,通过检查字段的数量来区分不同的文件是一种不好的做法,例如<code>len(line.split(","))</code>。因为你不会那么幸运,不同的文件总是有不同的<code>len()</code>。如果你正在处理其他人生成的文件,如果他们将来更改文件的格式(例如,添加更多字段),你会生气的。在</p>