【问题标题】:BigQuery NEST() returns 'Error: An internal error occurred' [duplicate]BigQuery NEST() 返回“错误:发生内部错误”[重复]
【发布时间】:2016-03-09 13:03:37
【问题描述】:

我正在尝试在 BigQuery 用户界面(而不是 API)中嵌套一个字段,并且在尝试输出到表而不展平时不断遇到错误:

错误:发生内部错误,无法完成请求。

我正在使用NEST() 函数,我已经在公共莎士比亚数据集上尝试过,但仍然遇到同样的错误。

SELECT corpus, NEST(word) FROM [publicdata:samples.shakespeare] GROUP BY 1

我的工作 ID 是:realself-main:bquijob_1bfb8310_153583ecbc2

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    关于如何在 BigQuery 中生成重复的文件/记录有大量关于 SO 的问题 而且,有很多不同的答案 - 范围

    来自:NEST 与未展平的结果不兼容 - 如
    Internal error on NEST when not flattening results

    to:使用 JS UDF 解决此问题的一些解决方案,如
    Nest multiple repeated fields in BigQuery ;
    Create a table with Record type column ;
    create a table with a column type RECORD

    还有更多 - 你可以搜索

    但令人惊讶的是——最近,我发现了如何让 NEST() 几乎可以正常工作!

    试试下面的技巧

    SELECT corpus, words 
    FROM (
      SELECT corpus, NEST(word) AS words
      FROM [publicdata:samples.shakespeare] 
      GROUP BY 1
    ) AS a
    CROSS JOIN (SELECT 1) AS b
    

    注意,您必须在Allow Large Results on 和Flatten Results off 的情况下将结果写入表

    【讨论】:

    • 这个技巧效果很好!我用过几次交叉连接来欺骗BQ,没想到在这里尝试..
    • 我在对 nest() 进行了大量实验后发现了这一点,因为它是最弱但需要的功能之一
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 2018-11-04
    相关资源
    最近更新 更多