2016-10-14 1 views
0

Je vais ferroutage sur un boîtier fermé déjà en débordement de pilePig Latin jointure interne pour effectuer Cooccurrence Matrice

Making a co-occurrence matrix from mysql database in MYSQL, PHP or R

Il y a une bonne solution pour créer une matrice de co-occurence dans sql comme:

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 

donné une table:

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

résultats en une matrice de co-occurrence comme ceci:

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

Cela peut également être fait en utilisant le serveur SQL commande UNPIVOT. Je me demande comment nous pouvons mettre en œuvre une solution similaire avec Pig Latin. En particulier, est-il un moyen de faire une jointure avec l'inégalité dans le latin Pig.

Quelles autres façons alternatives sont là pour obtenir une matrice de co-occurrence en utilisant PIG

+0

Pourriez-vous ajouter un exemple de ce que vous essayez d'accomplir exactement? Cela aiderait à clarifier la question. – Mureinik

+0

L'objectif final est de produire une matrice de co-occurrence en utilisant PIG. J'ai présenté un moyen de le faire en SQL, mais montrer pourquoi cette stratégie ne fonctionne pas avec PIG en raison de sa limite de jointure. – nonojojo

Répondre

0

La partie clé de votre question semble être:

est-il un moyen de faire une jointure avec l'inégalité dans Pig \

La réponse est oui, mais pas toujours dans le bon sens.

La façon d'aborder cela est de se joindre d'abord sans la condition, puis de filtrer le résultat sur l'inégalité.

Habituellement le cochon va pouvoir pousser un peu le filtre pour éviter que le résultat temporaire n'éclate, mais je ne suis pas sûr de l'efficacité de ce dernier en général.