使用map reduce进行上转换/分组

m0rkklqb  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(270)

我有两份文件
产品和相关邮政编码列表
美国邮政编码数据。
第一份文件的格式如下:

offer, location(currently only zips)
1, 84121
1, 84101
1, 58103
1, 58102
2, 84121
2, 84101
...
...

这个列表有超过40亿行。
第二个是来自usps的邮政编码数据,包括相关列:

Zip, City, State
84121, Salt Lake, UT
84101, Salt Lake, UT
....
....

在小范围内,我可以运行一系列的设置差异,将报价向上转换到各自的州和城市,以防州或城市的所有拉链都包含在内。例如:将报价的拉链分组为一组,我得到1,组([84121、84101、58103、58102….])
然后按状态对第二个列表进行分组:ut,set([84121,84101,…])
所以现在我可以迭代地运行所有50个状态之间的一个集差,所以它是一个空集。我可以从报价1中减去ut拉链,然后加上ut等等。所以,如果报价1有ut和az的所有拉链,只有华盛顿特区的一些拉链,我想结束

offer, location
1, UT
1, AZ
1, 20011
....
....

然后,我对所有城市反复运行相同的过程,以向上转换每个报价的剩余邮政编码。
不用说,这个过程是非常低效的,不能很好地扩展。我不确定有什么更好的解决办法。我在这里看过这篇文章,虽然这种方法对相交两个集合很有效,但我认为它不适合我的情况。谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题