使用 map reduce 在数据集中执行地址验证
Using map reduce to perform address validation in dataset
我有一个数据集,其中包含来自全球 150 个国家/地区的地址,您的任务是验证它们,数据存储在 3 个字段中 - 地址行、城市、邮政编码。我还有可用的每个国家的地址验证解决方案,但数据集不包括国家代码。任务是设计逻辑来处理数据并找到每条记录的国家/地区,因此它们可以 运行 通过验证组件。什么是最有效的方法。
由于运行针对每条记录的所有 150 个地址验证组件被认为效率不高,我正在考虑并行处理并使用 map reduce。我的逻辑是这样的:
可能的解决方案需要在 map/reduce 框架中采用分布式方法和并行处理,例如:
数据集可以分成相等的“组块”,每个组块代表每个国家,在不同集群上并行处理。
在每个块上运行的映射函数可以将每个地址映射到其各自的国家代码。
- 洗牌阶段将按国家/地区聚合映射器函数的所有输出
- 最后,在每个国家块上运行的 reduce 函数将验证其各自国家的地址,结果只有每个国家的有效地址。
我不知道这是否有意义,或者是否有可能使用 map/reduce 实现此功能。我之所以想到这个解决方案,是因为我记得我们上过一些关于云计算、并行处理和大数据的课程。任何建议或不同的方法都非常受欢迎...这是求职面试谢谢...
MapReduce 可用于组合大型数据集,但在您的情况下,您有一个大型数据集(地址)和一个小型数据集(国家/地区)。在这种情况下,仅 Map 的 MapReduce 作业就可以了,您可以执行以下操作:
读取地址数据集作为您的 Mapper 输入。
使用 MapReduce 的 cache functionality.
将国家数据集读入内存(例如作为 HashMap
)
在处理每条地址记录时对其进行 HashMap
查找,以将其与其所在国家/地区相关联。
应用您的验证逻辑和输出。
话虽如此,如果我要这样做,我肯定会使用 Apache Spark 而不是 MapReduce。
我有一个数据集,其中包含来自全球 150 个国家/地区的地址,您的任务是验证它们,数据存储在 3 个字段中 - 地址行、城市、邮政编码。我还有可用的每个国家的地址验证解决方案,但数据集不包括国家代码。任务是设计逻辑来处理数据并找到每条记录的国家/地区,因此它们可以 运行 通过验证组件。什么是最有效的方法。
由于运行针对每条记录的所有 150 个地址验证组件被认为效率不高,我正在考虑并行处理并使用 map reduce。我的逻辑是这样的:
可能的解决方案需要在 map/reduce 框架中采用分布式方法和并行处理,例如:
数据集可以分成相等的“组块”,每个组块代表每个国家,在不同集群上并行处理。
在每个块上运行的映射函数可以将每个地址映射到其各自的国家代码。
- 洗牌阶段将按国家/地区聚合映射器函数的所有输出
- 最后,在每个国家块上运行的 reduce 函数将验证其各自国家的地址,结果只有每个国家的有效地址。
我不知道这是否有意义,或者是否有可能使用 map/reduce 实现此功能。我之所以想到这个解决方案,是因为我记得我们上过一些关于云计算、并行处理和大数据的课程。任何建议或不同的方法都非常受欢迎...这是求职面试谢谢...
MapReduce 可用于组合大型数据集,但在您的情况下,您有一个大型数据集(地址)和一个小型数据集(国家/地区)。在这种情况下,仅 Map 的 MapReduce 作业就可以了,您可以执行以下操作:
读取地址数据集作为您的 Mapper 输入。
使用 MapReduce 的 cache functionality.
将国家数据集读入内存(例如作为 在处理每条地址记录时对其进行
HashMap
查找,以将其与其所在国家/地区相关联。应用您的验证逻辑和输出。
HashMap
)
话虽如此,如果我要这样做,我肯定会使用 Apache Spark 而不是 MapReduce。