gpt4 book ai didi

hadoop - 映射中的键重编号减少

转载 作者:行者123 更新时间:2023-12-02 20:10:32 25 4
gpt4 key购买 nike

我是hadoop的新手,并且正在使用一个程序,该程序的map函数输入是一个键如下所示的文件:

ID:      value:
3 sd
37 g
5675 gk
68 oi

我的文件约为10 GB,我想更改这些ID并以降序对其重新编号。我不想更改值。
我的输出必须是这样的:
 ID:        value:
5675 sd
68 g
37 gk
3 oi

我想在节点集群中完成这项工作吗?我怎样才能做到这一点?

我认为我需要一个全局变量,但不能在集群中执行此操作?我能做什么?

最佳答案

您可以执行一个map / reduce命令对ID进行排序,然后创建一个ID降序的文件。

然后,您可以编写第二个map / reduce,将该文件与未排序的文件连接在一起,映射器将在其中发射枚举数(可以通过拆分大小来计算以方便多个 map ),以便经过拳头文件的映射器将发射出“1 sd”,“2 g”等,处理ids文件的映射器将发出“1 5675”“2 68”。然后,reducer将加入文件

这是一个(未试用的)pig 0.11脚本,可以按照以下步骤进行操作:

A = load 'data' AS (id:chararray,value:chararray);
ID_RAW= FOREACH A GENERATE id;
DATA_RAW = FOREACH A GENERATE value;
ID_SORT= RANK ID_RAW BY id DESC DENSE;
DATA_SORT = RANK DATA_RAW DENSE;
ID_DATA = JOIN ID_SORT by $0, DATA_SORT by $0;
RESULT = FOREACH ID_DATA GENERATE ID_SORT::ID,DATA_SORT::value;
STORE RESULT to 'output';

关于hadoop - 映射中的键重编号减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16424258/

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