Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-06, 02:27   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 Map Reduce用于对键值对进行排序

我试图编写一个简单的Map-Reduce程序对键值对进行排序。我的数据是一个.txt文件,其数字值后跟一个空格,然后是其他字符。例如
1 fdsaf

17天

0 ow

我已经编写了以下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。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:56


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.