首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过查询对组进行BigQuery内部错误(Trigram)

通过查询对组进行BigQuery内部错误(Trigram)
EN

Stack Overflow用户
提问于 2015-10-11 23:17:00
回答 1查看 117关注 0票数 1

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

代码语言:javascript
复制
SELECT 
 ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM 
 trigram.trigrams3 
GROUP BY 
 ngram, decade

表trigrams3是从公共trigram数据集派生的,并且应该更小(尽管对trigram的计数会给出奇怪的结果)。

对如何使这件事奏效有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-12 18:15:05

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

代码语言:javascript
复制
SELECT COUNT(*)
FROM (
SELECT ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM  [otichyproject1:trigram.trigrams3]
GROUP EACH BY ngram, decade
)

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

请注意,我使用了“组每个”。“每个”不应该被需要,因为它是它的出路,但它改善了我在这里的运行时间。

与极限100相同,它适用于“每个”:

代码语言:javascript
复制
SELECT 
 ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM 
 trigram.trigrams3 
GROUP EACH BY 
 ngram, decade
LIMIT 100

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

代码语言:javascript
复制
SELECT ngram, decade, SUM(freq) totalfreq, SUM(books) totalbooks 
FROM  [otichyproject1:trigram.trigrams3]
GROUP EACH BY ngram, decade

因此,对这个问题的简短回答是:继续使用“组每个”(目前而言)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33071129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档