gpt4 book ai didi

hadoop - Hadoop Map Reduce:如何为此创建reduce函数?

转载 作者:行者123 更新时间:2023-12-02 20:23:30 24 4
gpt4 key购买 nike

我撞到了砖墙。我具有从以前的MR函数生成的以下文件。

产品评分(我有)

0528881469  1.62
0594451647 2.28
0594481813 2.67
0972683275 4.37
1400501466 3.62

其中第1列= product_id,第2列= product_rating

相关产品(我有)
0000013714  [0005080789,0005476798,0005476216,0005064341]
0000031852 [B00JHONN1S,B002BZX8Z6,B00D2K1M3O,0000031909]
0000031887 [0000031852,0000031895,0000031909,B00D2K1M3O]
0000031895 [B002BZX8Z6,B00JHONN1S,0000031909,B008F0SU0Y]
0000031909 [B002BZX8Z6,B00JHONN1S,0000031895,B00D2K1M3O]

其中第1列= product_id,第2列= Also_bought产品的数组

我要创建的文件现在将这两个文件合并为以下文件:

推荐产品(我需要)
0000013714  [<0005080789, 2.34>,<0005476798, 4.58>,<0005476216, 2.32>]
0000031852 [<0005476798, 4.58>,<0005080789, 2.34>,<0005476216, 2.32>]
0000031887 [<0005080789, 2.34>,<0005476798, 4.58>,<0005476216, 2.32>]
0000031895 [<0005476216, 2.32>,<0005476798, 4.58>,<0005080789, 2.34>]
0000031909 [<0005476216, 2.32>,<0005080789, 2.34>,<0005476798, 4.58>]

其中第1列= product_id,第2列=的元组数组

此刻我完全被困住了,我以为我有一个计划,但事实证明这不是一个很好的计划,而且没有用。

最佳答案

两种基于您的产品分数数据大小的方法:

  • 如果您的Product Scores文件不是很大,则可以将其加载到Hadoop分布式缓存中。(现在Jobs本身可用)Job.addCacheFile()然后,处理“相关产品”文件,并在 reducer 中获取必要的额定值并将其写出。快速又脏。但是,如果“产品分数”是一个巨大的文件,那么可能不是解决此问题的正确方法。
  • 减少侧联接。可以使用各种示例,例如,引用link以获得想法。
  • 您已经定义了架构,可以在其之上创建配置单元表,并使用查询获取输出。这样可以节省很多时间。
    编辑:此外,如果您已经有map-reduce作业可以创建此文件,则可以添加配置单元作业,该配置单元将在这些化简器输出上创建外部配置单元表,然后对其进行查询。
  • 关于hadoop - Hadoop Map Reduce:如何为此创建reduce函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59024033/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com