我有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中。如纬度、液化天然气、距离
1条答案
按热度按时间wmomyfyw1#
如果每个csv文件都小于默认的块大小,只需获取当前Map器的id并将其作为键发出即可。
我相信你能拿到这个身份证
conf.get("mapred.tip.id")
从Map器的配置。