sql - 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
解决方案
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.
推荐阅读
- ocr - 真实视频字幕生成中使用拉伸阿拉伯字母的规则是什么?
- c# - C#方法调用多次
- macos - 安装 PHP 7.1 for Mac 时出错(使用 Homebrew)
- sql - 如何捕获基于 Web 的应用程序发送到 Oracle 服务器的 SQL 查询?
- mysql - SQL 中的正则表达式性能
- python - 返回 UnboundLocalError 的 Zip() 函数:分配前引用的局部变量 'zip'
- pytest - 如何从 unittest TestCase 类中声明的测试方法中获取夹具值?
- python - 使用查询字符串过滤 MultiIndex
- javascript - 如何在Javascript中跟踪局部变量值?
- django - 使用 DRF 在 Django 中与生成的令牌和魔术 URL 共享