用hadoop计算直方图
我有一个csv整数文件,对图像的(r,g,b,a)值进行编码,我想为r,g,b和a中的每一个计算4个直方图。我可以在Hadoop中编写一个MapReduce作业来实现这一点吗 例如,给定的输入文件:用hadoop计算直方图,hadoop,mapreduce,histogram,Hadoop,Mapreduce,Histogram,我有一个csv整数文件,对图像的(r,g,b,a)值进行编码,我想为r,g,b和a中的每一个计算4个直方图。我可以在Hadoop中编写一个MapReduce作业来实现这一点吗 例如,给定的输入文件: 1,2,3,4,1,2,3,4 我希望直方图输出为: r[1] = 2 r[i] = 0 for all other i's g[2] = 2 g[i] = 0 for all other i's b[3] = 2 b[i] = 0 for all other i's a[4] = 2
1,2,3,4,1,2,3,4
我希望直方图输出为:
r[1] = 2 r[i] = 0 for all other i's
g[2] = 2 g[i] = 0 for all other i's
b[3] = 2 b[i] = 0 for all other i's
a[4] = 2 a[i] = 0 for all other i's
实际输出文件是另一个csv文件,其外观如下:
0, 2, (253 0's for red), 0, 0, 2, (252 0's for green), 0, 0, 2, (251 0's for blue), 0, 0, 0, 0, 2, (250 0's for alpha)
当然可以
如果您使用4个减速机并创建一个分区器,将每个通道发送到不同的减速机,那么在每个减速机中,您只需要创建一个数组,在输出中,您将在不同的文件中获得每个直方图。相反,要使用通道的字母,可以将其编码为1、2、3、4,并使用键选择减速器。或者只使用一个减速机,您需要生成四个数组或一个4 X 255矩阵,并在一个文件中写入四个直方图。您能用所提供输入的精确(可能)输出值重写您的示例吗?