在 BigQuery 视图中找不到字段

Posted

技术标签:

【中文标题】在 BigQuery 视图中找不到字段【英文标题】:Field not found in BigQuery view 【发布时间】:2014-03-28 00:14:23 【问题描述】:

这可能只是 BQ 中的一个错误,但也许有人可能会因某些错误而打电话给我。基本上我要做的是将一个字段(比如new_field)添加到表中并将其保存为视图以供以后查询。

当我查询视图时,它会抛出一个关于无法找到new_field 的错误。

复制此错误的最简单方法:

SELECT IF(corpus_date > 1599, "17th", "16th") AS century, *
FROM [publicdata:samples.shakespeare] 
WHERE corpus_date > 0;

另存为视图,命名为bar

SELECT * FROM [foo.bar]

会抛出如下错误:

Error: Field 'century' not found in table 'publicdata:samples.shakespeare'.

有什么想法吗?

【问题讨论】:

【参考方案1】:

看起来* 在视图中的扩展存在问题。我已经提交了一个错误,希望我们能够尽快修复。同时,您应该能够通过显式添加视图中的所有字段来解决此问题。

例如,如果您将视图保存为以下内容:

SELECT IF(corpus_date > 1599, "17th", "16th") AS century, 
    word, word_count, corpus, corpus_date
FROM [publicdata:samples.shakespeare] 
WHERE corpus_date > 0;

那么select * from [foo.view] 就可以了。

【讨论】:

根据我的经验,BQ。不允许包含 * 和其他字段的 select 语句。它明确地允许字段或 *。无论是观点还是只是陈述。 带有额外字段支持的 select * 是我们在过去几个月中添加的小型 SQL 调整之一。另一个相关的是能够将 * 与嵌套字段一起使用,因此您可以使用 SELECT record.* FROM ... 很好...我在哪里可以获取有关此类调整版本的更新。我没有在正式的发行说明页面中看到它。

以上是关于在 BigQuery 视图中找不到字段的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 MVC4 Razor 视图中找不到扩展方法?

iOS 程序约束:“在容器层次结构中找不到视图”

排毒:在 Info.plist 中找不到字段 CFBundleIdentifier

在视图中找不到 ASP.NET 资源

Android 片段,在 TabHost 中找不到 id 的视图

在 Django 视图中找不到静态文件