整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

16.7.3对称链接

hadoop 花牛 12℃ 0评论

有几百万人在twitter上给@THE_REAL_SHAQ回帖声援支持的时候,他不回 复这几百万人是可以理解的。如图所示,我经常和@mndoci交流,a让我们 之间的边是“对称链接”(symmetric link)。这精确地反映了我和@mndoci

①由于边对记录的规模比较小以及Hadoop实现细节的繁琐,mapper也许会很快就把 数据存储到硬盘上。如果jobtracker的运行界面上出现spilled records严重超出

map output records” 字样,请试着把 io. sort .record .percent 参数值调大一 些:PIG_OPTS=" – Dio. sort. record. percent=0.25 -Dio. sort. mb=350M pig my__file.pig0

②我们能够想到的最大的道路地图特殊情况就是位于英国斯温顿的著名大转盘Magic

Roundabout,它的度是 10

%28Swindon%29 0

③开源数据倡导者Deepak Singh,也是Amazon AWS云计算的业务开发经理

有更多共同兴趣(相较于@THE_REAL_SHAQ)

找到对称链接的一个方法是获取那些同时出现在A Replied To B(A回帖 给B)边集合和A Replied By B(B回帖给A)的边集合的边。我们能通过内 部“自连接”操作来实现交集操作,以此来发现对称链接:

a__repl_to_b = LOAD 'a_replies_b.tsv' AS (user_a:chararray, user_b:chararray); a_repl_by_b = LOAD 'a_replies_b.tsv' AS (user_b:chararray, user_a:chararray);
 --symmetric edges appear in both sets 
a_symm_b_j = DOIN a_repl_to_b BY (user_a, user_b), 
a_repl_by_b BY (user_a> user_b);
...

但是,这个过程结束之后,它将发送两个完全的边-对列表给reduce阶段, 这要求系统提供双倍内存。如果从一个节点的角度来看,一个对称链接等同于一对边:一个出一个进,利用这个信息我们能做得更好。如下代码所示,我们可以根据节点进行排序,把排序值低的那个节点放在第一位,然 后我们可以得到一个无向图,但把链接的方向保存为边的一种元数据:

a_replies_b = LOAD 'a_replies_b.tsv' AS (src:chararray, dest:chararray); 
a_b_rels = FOREACH a_replies_b GENERATE 
    ((src <= dest) ? src : dest) AS user_a,
    ((src <= dest) ? dest : src) AS user_b,
    ((src <= dest) ? 1 : 0) AS a_re_b:int^
    ((src <= dest) ? 0 : 1) AS b_re_a:int;
DUMP a_b_rels 
(mrflip,tom_e_white,1,0)
(josephkelly,wattsteve,0,1)
(mrflip,mza,1,0)
(nealrichter,tlipcon,0,1)

现在我们汇总每对节点间的所有边。一个对称边在每个方向至少有一个回帖:

a_b_rels_g = GROUP a_b_rels BY (user_a, user_b); 
a_symm_b_all = FOREACH a _b_rels_g GENERATE 
    group.user_a AS user_a, 
    group.user_b AS user_b,
    (((SUM(a_b_rels.a_re_b) > 0) AND
        (SUM(a_b_rels.b_re_a) > 0) ) ? 1 : 0) AS is_symmetric:intj;
    DUMP a_symm_b_all
    (mrflipj tom_e_white,1)
    (mrflip,mza,0)
    (josephkelly,wattsteve,0)

(nearlrichter,tlipcon,1)
...
a_symm_b=FILTER a_symm_b_all BY (is_symmetric==1);
STORE a_symm_b  INTO 'a_symm_b.tsv';

这里有一部分输出,显示和@tom_e_white之间有一个对称链接:

(mrflip,tom_e_white,1)
(nealrichter,tlipconj1)

转载请注明:全栈大数据 » 16.7.3对称链接

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址