GitHub存档2015年的Google Big Query存储库语言信息

时间:2016-02-10 21:12:18

标签: api github google-bigquery

我从GitHub Archive Google BigQuery检索语言信息时遇到问题,因为表格的结构在2015年初发生了变化。

查询github_timeline表时,我有一个名为repository_language的字段。它允许我获取我的语言统计信息。 不幸的是,2015年结构发生了变化,表格在2014年之后并未包含任何事件。 例如,以下查询不会返回任何数据:

class PlayersListViewSet(DifferentDetailSerializerMixin, viewsets.ModelViewSet):
    queryset = Player.objects.all()
    serializer_class = PlayersListSerializer
    detail_serializer_class = PlayersDetailSerializer
    filter_backends = [filters.OrderingFilter]
    ordering_fields = ['name']

2015年的活动包括:githubarchive:month& githubarchive:日表。他们都没有语言信息(或至少是repository_language专栏)。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

查看有效载荷字段
我认为它是字符串实际上包含所有“缺失”属性的JSON

您可以使用JSON Functions

处理此问题

enter image description here

  

添加了查询

尝试如下:

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

答案 1 :(得分:1)

Mikhail所说的+你可以使用这样的查询:

SELECT JSON_EXTRACT_SCALAR(payload, '$.pull_request.base.repo.language') language, COUNT(*) c
FROM [githubarchive:month.201501]
GROUP BY 1
ORDER BY 2 DESC