4

私は次の方法でプログラミング言語の人気を測定しようとしています:

  1. と組み合わせたレポの星の数...
  2. リポジトリで使用されるプログラミング言語と...
  3. 各言語のコードの合計バイト数 (一部の言語はより詳細/より詳細ではないことを認識)

便利なことに、Github Archive によって提供され、BigQuery によってホストされている大量の Github データがあります。唯一の問題は、Github アーカイブのさまざまなイベント タイプのペイロードで「言語」が利用できないことです。

Github アーカイブ データに言語が入力されている可能性があるかどうか、およびその場所を見つけようとして実行している BigQuery クエリを次に示します。

SELECT *
FROM [githubarchive:month.201612]
WHERE JSON_EXTRACT(payload, "$.repository.language") is null
LIMIT 100

この方法で Github アーカイブ データを利用できるかどうか、またどのように利用できるかについて、誰かが洞察を提供してもらえますか? それとも、他のアプローチを追求する必要がありますか? BigQuery には github_repos パブリック データセットもあることがわかりました。これにはいくつかの言語指標が含まれていますが、言語指標は常に終わっているようです。最終的には、何らかの月次指標 (つまり、特定の月の「アクティブな」リポジトリ、最も人気のある言語) を取得したいと考えています。

どんなアドバイスでも大歓迎です!

4

2 に答える 2

8

BigQuery と GitHub アーカイブと GHTorrent を使用 -

昨年 12 月にプル リクエストで言語を取得するには ( http://mads-hartmann.com/2015/02/05/github-archive.htmlからコピーを貼り付けました):

SELECT COUNT(*) c, JSON_EXTRACT_SCALAR(payload, '$.pull_request.base.repo.language') lang
FROM [githubarchive:month.201612]
WHERE JSON_EXTRACT_SCALAR(payload, '$.pull_request.base.repo.language') IS NOT NULL
GROUP BY 2
ORDER BY 1 DESC
LIMIT 10

http://i.imgur.com/PmDxoEX.png

プロジェクトごとの星の数を確認するには:

SELECT COUNT(*) c, repo.name 
FROM [githubarchive:month.201612]
WHERE type='WatchEvent'
GROUP BY 2
ORDER BY 1 DESC
LIMIT 10

http://i.imgur.com/yXDHUlB.png

言語とバイトをすばやく表示するには、GHTorrent を使用できます。

SELECT language, SUM(bytes) bytes
FROM [ghtorrent-bq:ght.project_languages]
GROUP BY 1
ORDER BY 2 DESC
LIMIT 10

http://i.imgur.com/8RvrVBA.png

または、実際のファイルを確認するには、BigQuery の GitHub のコンテンツを参照してください。

これらのクエリを組み合わせて、必要な結果を得ることができます。

于 2017-01-05T01:48:28.730 に答える
1
SELECT 
  JSON_EXTRACT_SCALAR(payload, '$.pull_request.head.repo.language') AS language,
  COUNT(1) AS usage
FROM [githubarchive:month.201601] 
GROUP BY language
HAVING NOT language IS NULL
ORDER BY usage DESC
于 2017-01-05T01:58:56.580 に答える