mapreduce多重map和reducer

cyvaqqii  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(313)

我有csv文件的数据如下

lat,lng
18.1234,77.3443
18.345,77.335
18.356,77.345

所以基本上包含纬度和经度,每个csv文件高达1mb,我需要计算从csv的第一个记录和第二个记录到纬度和经度的距离。

i.e 18.1234, 77.3443 and 18.345, 77.335.

但是从mapper它会一次读取一行,所以我想在行之间添加delimeter(“|”),所以上面的csv文件记录将成为mapper的一行和输入

Key->Filename
values-> All csv records as one line (all records seprated by delimetr) as text.

filename  18.1234,77.3443|18.345,77.335|18.356,77.345....

在reducer中,我将用delimeter分割并计算后续记录之间的距离[第一和第二个坐标]。
所以如果我有30个csv文件,我想要30个Map器和30个还原器来处理这个csv文件。我还需要将这些数据存储在mysql中。如纬度、液化天然气、距离

wmomyfyw

wmomyfyw1#

如果每个csv文件都小于默认的块大小,只需获取当前Map器的id并将其作为键发出即可。
我相信你能拿到这个身份证 conf.get("mapred.tip.id") 从Map器的配置。

相关问题