按查询在GROUP上的BigQuery内部错误(语法图)

er

我用LIMIT 100尝试了以下查询,并得到了“查询执行期间超出资源”(otichyproject1:job_1mpw4aDtTHmbduBdKSBu5ty1DXY),所以我尝试将其输出到新表中并允许较大结果。它运行了更长的时间,但是由于“内部错误”而失败(otichyproject1:job_6pFUlj2AzdROUyAU8nZ9dGdo3ms)。

SELECT 
 ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM 
 trigram.trigrams3 
GROUP BY 
 ngram, decade

表trigrams3源自公共trigram数据集,并且应较小(尽管trigram上的COUNT给出了奇怪的结果)。

关于如何进行这项工作的任何想法?

费利佩·霍法(Felipe Hoffa)

首先,让我们看看结果集有多大:

SELECT COUNT(*)
FROM (
SELECT ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM  [otichyproject1:trigram.trigrams3]
GROUP EACH BY ngram, decade
)

837,369,607-几乎有十亿个寄存器要输出,这就是为什么我们需要“ allowLargeResults”。

请注意,我使用了“ GROUP EACH”。不需要使用“ EACH”,因为它已经淘汰了,但是它为我增加了运行时间。

与LIMIT 100相同,它与“ EACH”一起使用:

SELECT 
 ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM 
 trigram.trigrams3 
GROUP EACH BY 
 ngram, decade
LIMIT 100

如果我使用“ EACH”和“ AllowLargeResults”进行尝试,则将所有结果输出到新表的查询仅在20秒内运行:

SELECT ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM  [otichyproject1:trigram.trigrams3]
GROUP EACH BY ngram, decade

因此,此问题的简短答案是:继续使用“ GROUP EACH”(目前)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章