首页 > 解决方案 > BigQuery:GitHub 中最受欢迎的 NPM 包

问题描述

过去,我使用以下内容提取 GitHub 中最流行的 NPM 包: https ://cloud.google.com/community/tutorials/github-bigquery-npm-packages

不幸的是,谷歌已经删除了 JS() 函数,现在我不能“发出”行了。现在怎么办?

SELECT package, COUNT(*) as imports
FROM JS(
    (
        SELECT content
        FROM `bigquery-public-data.github_repos.sample_contents`
        WHERE id IN (
            SELECT id FROM `bigquery-public-data.github_repos.sample_files`
            WHERE LAST(SPLIT(files.path, '/')) = "package.json"
        )
    ),
    content,
    "[{ name: 'package', type: 'string'}]",
    "function(rowData, emit) {
        try {
            content = JSON.parse(rowData.content);
            if (content.dependencies) {
                Object.keys(content.dependencies).forEach((package) => {
                    emit({ package: package });
                });
            }
        } catch(e) {}     
    }"
)
GROUP BY package
ORDER BY imports DESC
LIMIT 100

标签: sqlgoogle-bigquery

解决方案


I have tested your code and as @Mikhail said, if you change the SQL dialect in BigQuery to Legacy SQL, the JS function gets correctly recognized.


推荐阅读