我从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专栏)。
任何人都可以帮助我吗?
答案 0 :(得分:2)
查看有效载荷字段
我认为它是字符串实际上包含所有“缺失”属性的JSON
您可以使用JSON Functions
处理此问题添加了查询
尝试如下:
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