为什么查询对sample_commits有效,但对公共github_repos数据集中的提交无效?

我遇到了Google BigQuery的一些奇怪行为。数据集bigquery-public-data.github_repos提供了表commitssample_commits。表的架构应该相同,不同之处仅在于表的大小,因此可以开发查询而不会浪费有限的数据。

当我对示例数据运行以下查询时,我得到10次提交的正确结果:

SELECT 
  commit AS commit,repo_name AS repo_name,committer.date AS date
FROM 
  `bigquery-public-data.github_repos.sample_commits`
WHERE 
  repo_name = "torvalds/linux"
LIMIT 10

奇怪的是,当我在大表commits上运行查询时,收到错误消息:

SELECT 
  commit AS commit,committer.date AS date
FROM 
  `bigquery-public-data.github_repos.commits`
WHERE 
  repo_name = "torvalds/linux"
LIMIT 10

我收到的错误消息是:

  

对于运算符=没有匹配的签名,参数类型为:ARRAY,STRING。支持的签名:ANY = ANY [8:3]

从模式表中我也知道repo_name的类型为STRING,所以这个错误使我很困惑。

liyan9991 回答:为什么查询对sample_commits有效,但对公共github_repos数据集中的提交无效?

字段repo_namebigquery-public-data.github_repos.sample_commits表中为STRING NULLABLE数据类型

bigquery-public-data.github_repos.commits表中的同一字段为STRING REPEATD数据类型

请尝试以下

SELECT 
  commit AS commit,repo_name AS repo_name,committer.date AS DATE
FROM 
  `bigquery-public-data.github_repos.commits`
WHERE 
  'torvalds/linux' IN UNNEST(repo_name)
LIMIT 10
本文链接:https://www.f2er.com/3156224.html

大家都在问