0

私は、タグの共起を計算しようとしている Hive の初心者です。各ドキュメントに存在するすべてのタグを含む Hive のテーブルがあります。

(docID STRING, tag STRING)

例えば:


docID、タグ

  • 1、犬
  • 1、猫
  • 1、馬
  • 2、犬
  • 2、猫
  • 2、骨

各ペアのすべてのタグ共起を計算できる Hive クエリを探しています。

出力は次のようになります。

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

上記の例の場合:


tagA、tagB、共起

  • 犬、猫、2
  • 犬、馬、1
  • 犬、骨、1
  • 猫、犬、2
  • 猫、馬、1
  • 猫、骨、1

これを達成するHiveクエリはありますか?

4

1 に答える 1

1
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) は出力に含まれません。

于 2013-01-21T18:30:30.587 に答える