使用地图化简在数据集中执行地址验证



我有一个数据集,其中包含来自全球 150 个国家/地区的地址,您的任务是验证它们,数据存储在 3 个字段中 - 地址行、城市、邮政编码。我还可以为每个国家/地区提供地址验证解决方案,但数据集不包括国家/地区代码。任务是设计将处理数据并查找每条记录的国家/地区的逻辑,以便可以通过验证组件运行它们。什么是最有效的方法。

由于针对每条记录运行所有 150 个地址验证组件被认为效率不高,因此我正在考虑并行处理并使用 map reduce。我的逻辑如下:

可能的解决方案需要分布式方法和map/reduce框架中的并行处理,例如:

  • 数据集可以分成相等的"块",每个国家一个,在不同的集群上并行处理。

  • 在每个区块上运行的映射函数可以将每个地址与其各自的国家/地区代码进行映射。

  • 洗牌阶段将按国家/地区聚合映射器函数的所有输出
  • 最后,在每个国家/
  • 地区块上运行的reduce函数将验证其各自国家/地区的地址,从而仅显示每个国家/地区的有效地址。

我不知道这是否有意义,或者是否有可能使用 map/reduce 实现此功能。我只是想到这个解决方案,因为我记得我们在大学时代做过的一些课程,但关于云计算、并行处理和大数据。任何建议或不同的方法都非常受欢迎...这是为了面试,谢谢...

MapReduce对于组合大型数据集很有用,但是在您的情况下,您有一个大型数据集(地址)和一个小数据集(国家)。在这种情况下,仅映射的MapReduce作业就可以了,您需要执行以下操作:

  1. 读取地址数据集作为映射器输入。

  2. 使用MapReduce的缓存功能将国家数据集读入内存(例如作为HashMap)。

  3. 在处理每个地址记录时对其进行HashMap查找,以将其与其国家/地区相关联。

  4. 应用验证逻辑和输出。

说了这么多,如果我要这样做,我肯定会使用Apache Spark而不是MapReduce。

相关内容

最新更新