执行共现矩阵的内部连接

ma8fv8wu  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(330)

我要把一个已经结案的案子放回去
用mysql、php或r从mysql数据库生成共现矩阵
在sql中创建共现矩阵有一个很好的解决方案:

SELECT   a.uid first_uid, b.uid second_uid, COUNT(*) cnt
FROM     my_table a JOIN my_table b ON b.id = a.id AND b.uid > a.uid
GROUP BY a.uid, b.uid

给出一张table:

id       uid
1         a
1         b
1         c
2         a
2         b
2         c
3         b
3         c

产生如下共现矩阵:

first_uid    second_uid    cnt
     a           b           2   
     a           c           2   
     b           c           3

这也可以使用SQLServerunpivot命令完成。我想知道我们怎样才能用pig拉丁语实现类似的解决方案。尤其是在拉丁语中,有一种方法可以把不平等联系起来。
还有什么其他的方法可以用pig得到共现矩阵

toiithl6

toiithl61#

你的问题的关键部分似乎是:
有没有一种方法可以在pig中用不等式进行连接
答案是肯定的,但并不总是很好。
解决这个问题的方法是先不带条件的连接,然后在不等式上过滤结果。
通常情况下,清管器能够将过滤器向上推一点,以防止临时结果爆炸,但我不确定这通常有多有效。

相关问题