我有一个csv文件,包含大约400列+100000行。 我正在尝试在HDinsight Hadoop集群中运行MapReduce作业。 我的MapReduce的逻辑是计算Peason的相关矩阵。在
map操作生成每个可能的值对以及每个键。在
示例: 作为输入:
1,2,3
4,5,6
映射器输出将是:
^{pr2}$正如您可以得出的结论,映射器输出的大小更多地取决于列的数量,因此取决于排序阶段的复杂性。这就是为什么我的mapreduce工作失败了。在
我曾经在以前的mapper脚本中输出完整的列表,如下所示:
^{3}$但这需要完整地读取文件,以便压缩文件,然后压缩每对列。在这种情况下,如果文件足够大,我就会耗尽内存。在
我考虑过读取列而不是行,并一直使用“yield”来优化mapper和sort中的内存使用。在
有没有一种方法可以一列一列地读取一个文件(给定一个特定的分隔符),而不将其完全加载到内存中?
目前没有回答
相关问题 更多 >
编程相关推荐