| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 
	 | 
| 		
			
			 | 
		#1 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2019-11-21 
				
				
				
					帖子: 3,013
				 
				
				
				声望力: 66 ![]()  | 
	
	
	
		
		
			
			 
			
			我试图编写一个简单的Map-Reduce程序对键值对进行排序。我的数据是一个.txt文件,其数字值后跟一个空格,然后是其他字符。例如 
		
		
		
		
		
		
		
	1 fdsaf我已经编写了以下Matlab脚本和map / reduce函数: ds = tabularTextDatastore('test.txt'); outds = mapreduce(ds, @Map, @Reduce); readall(outds) reset(ds); function Map(data, ~, KVStore) keys = data.Var1; values = data.Var2; addmulti(KVStore, keys, values) end function Reduce(intermKey, intermValIter, outKVStore) while hasnext(intermValIter) val = getnext(intermValIter); end add(outKVStore, intermKey, val) end 尽管我从未调用过任何排序函数(尽管在旧版本的Matlab上运行该函数不会返回排序的数据),但是这令人惊讶地返回了排序的键值对。不幸的是,它会删除键为0的所有行。因此,我正在寻找一种解决此问题的方法,或者对另一种方法提出建议。我致力于Map-Reduce,因为其目标是在太大而无法容纳内存的数据上运行它,但是我愿意使用其他语言,例如Python。 更多&回答...  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |