2013-01-21 33 views
0

我是一個Hive新手,希望計算標籤共現。我在包含所有的標籤配置單元的表,其存在於每個文檔中:計算標籤在Hive中的共現

(docID STRING, tag STRING) 

例如:


的docID,標籤

  • 1,狗
  • 1,貓
  • 1,馬
  • 2,狗
  • 2,貓
  • 2,骨

我要尋找一個蜂房查詢可能計算所有標籤共現的一對。

輸出應爲:

(tagA STRING, tagB STRING, co-occurrence INT) 

對於上面的例子:


TAGA,TAGB,同現

  • 狗,貓,2
  • 狗,馬,1
  • 狗,骨,1個
  • 貓,狗,2
  • 貓,馬,1個
  • 貓,骨,1

有誰蜂房查詢這將實現這一目標?

回答

0
SELECT A.tag, B.tag, COUNT(*) 
FROM tags A JOIN tags B 
ON A.docId = B.docId 
GROUP BY A.tag, B.tag; 

注意:這不包括0,例如, (馬,骨,0)不會在輸出