我正在使用MapReduce来制作一个(相对)大型数据集,这是一个以.csv格式(~250MB)存储的简单矩阵。我在一台带有2台计算机的自制集群中运行MapReduce。
集群工作正常,没有任何问题。
我一如既往地从csv文件
创建数据存储区 ds=datastore({'DS.csv'},'ReadVariableNames',false);
我打开池并设置MapReduce环境
myCluster=parpool('HomeCluster');
MRE=mapreducer(myCluster);
我启动程序并出现以下错误:
Error using matlab.io.datastore.TabularTextDatastore/partition (line 44)
Cannot find files or folders matching: '<path for CSV>'
奇怪的是...... csv文件位于当前文件夹中,该文件夹还包含我的脚本/函数。
我也尝试将该文件附加到池中(即使对我来说听起来很愚蠢,如果我错了,请纠正我),但仍然没有运气。
感谢任何帮助。谢谢!
更新:我能够通过在两台计算机上创建一个具有相同路径的相同名称的文件夹并在两个文件夹中复制csv文件来运行此程序。但这是相当愚蠢的,即使因为大多数时候都不可能创建完美匹配的路径名(例如,操作系统中的用户名可能不同)。有没有更智能的方法来避免这种情况?主节点是否是唯一一个包含数据集文件的节点?
答案 0 :(得分:1)
我是如何实际解决的:通过将这些文件附加到池中无法解决问题,所以我不得不通过网络共享外部硬盘驱动器,以便将这些文件放在同一个路径/文件夹中。