2016-05-04 12 views
0

我正在使用Python进行Hadoop流式处理,并且遇到排序问题。我的测试数据提供了期望的结果:Linux错误 - 排序:出现在单元上的SI和IEC前缀

cat movies.dat smallest.dat users.dat | ./Mapper.py | sort -h 

显示输出:

Boomerang (1992)::F::3 

然而,非测试数据并不:

cat movies.dat ratings.dat users.dat | ./Mapper.py | sort -h 

给出一个错误:

sort: both SI and IEC prefixes present on units 
close failed in file object destructor: 
Error in sys.excepthook: 

Original exception was: 

因此,Hadoop的输出流媒体是一个空文件。

测试数据取自原始文件; ratings.dat从MovieLens数据集,例如:

1::1193::5::978300760 
1::661::3::978302109 

任何人能解释这是怎么回事,和我能做些什么?

+0

我们应该怎么知道'Mapper.py'的输出应该是什么样子? –

+0

映射器输出应该看起来像'Boomerang(1992):: F :: 3' – James

回答

0

我将输出顺序改为F::Boomerang (1992)::3,错误消失了。我不明白为什么;但它不再是一个问题。

相关问题