Набор данных BigQuery GitHub возвращает неверные результаты - PullRequest
0 голосов
/ 28 мая 2018

Итак, я пытаюсь выполнить несколько запросов, используя bigquery-public-data:github_repos.files, который был обновлен до May 25, 2018, 2:07:03 AM, теоретически он содержит все данные о файлах из github - как сказано в описании таблицы:

Метаданные файлов для всех файлов в HEAD.

Присоединитесь к [bigquery-public-data: github_repos.contents] в столбцах идентификаторов для поиска текста.

ИтакУ меня есть этот инструмент под названием goreleaser, чтобы использовать его, пользователи создают файл с именем .goreleaser.yaml.Чтобы иметь представление о том, сколько репозиториев его используют, я использовал поиск по github, что-то вроде этого поиска filename:goreleaser extension:yaml extension:yml path:/, вы можете увидеть результаты по этой ссылке.

Это показывает 1k + результаты, иполучает результаты для всех этих возможных имен:

  • goreleaser.yml
  • goreleaser.yaml
  • .goreleaser.yml
  • .goreleaser.yaml

Проблема в том, что github показывает счетчик результатов в 1k, но вы можете разбивать на страницы только до 1k или около того.Я написал некоторый код на Go, используя API и т. Д., Вы видите это здесь.

В любом случае, я пытался сделать что-то похожее с bigquery, вот моя глупая попытка:

SELECT repo_name, path
FROM [bigquery-public-data:github_repos.files]
WHERE REGEXP_MATCH(path, r'\.?goreleaser.ya?ml')

Этобудет включать в себя инструменты, которые не продаются, но это не проблема.Проблема заключается в том, что даже с инструментами, выпущенными вендором, он показывает только ~ 500 результатов, а не 1 КБ.

PS: я также пробовал упрощенную версию, соответствующую path с LIKE и т. Д., Те же результаты.

Так что, либо я делаю что-то ужасно неправильное, эта таблица не включает в себя все данные, как говорится, либо поиск в github обманывает меня.

Любой совет?

Спасибо!

1 Ответ

0 голосов
/ 29 мая 2018

Не каждый проект в GitHub отражается в наборе данных репо BigQuery.

Давайте рассмотрим все проекты, получившие более 40 звезд в апреле, по сравнению с тем, что мы можем найти в зеркалах репо BigQuery:

SELECT COUNT(name) april_projects_gt_stars, COUNT(repo_name) projects_mirrored
FROM (
  SELECT DISTINCT repo_name, name, c
  FROM `bigquery-public-data.github_repos.files` a
  RIGHT JOIN (
    SELECT repo.name, COUNT(*) c
    FROM `githubarchive.month.201804` 
    WHERE type='WatchEvent'
    GROUP BY 1
    HAVING c>40
  ) b
  ON repo_name=name
)

enter image description here

9522 против 3995. Почему?

  • Зеркально отражаются только проекты с открытым исходным кодом.Это в соответствии с обнаруженной лицензией с открытым исходным кодом - если GitHub не может определить, какую лицензию использует проект, проект не может быть отражен.
  • Новые проекты: конвейер может пропустить некоторые новые проекты.Пожалуйста, сообщите о них.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...