2016-03-08 2 views
4

J'essaie d'imbriquer un champ dans l'interface utilisateur de BigQuery (pas l'API) et de recevoir continuellement une erreur en essayant de sortir une table sans aplatissement:BigQuery NEST() renvoie 'Erreur: Une erreur interne s'est produite'

Error: An internal error occurred and the request could not be completed.

J'utilise la fonction NEST() et je l'ai essayé sur l'ensemble de données publiques Shakespeare et continuer à obtenir la même erreur.

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

Mon Job ID est: realself-main: bquijob_1bfb8310_153583ecbc2

Répondre

4

Il y avait des tonnes de questions sur SO liées à la façon de générer fileds/enregistrements répétés dans BigQuery Et, il y avait beaucoup de réponses différentes - allant

de: NEST n'est pas compatible avec le résultat Redresser - comme dans
Internal error on NEST when not flattening results

à: des solutions pour remédier à ce émission en utilisant JS UDF comme dans
Nest multiple repeated fields in BigQuery;
Create a table with Record type column;
create a table with a column type RECORD

il y a plus - vous pouvez rechercher

But surprisingly enough - recently, I found how to make NEST() work almost as it supposed to work!

Essayez ci-dessous pour voir l'astuce

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 

Note, vous devez écrire le résultat à la table avec Allow Large Results sur et Flatten Results hors

+0

Le tour a bien fonctionné! J'ai utilisé la croix pour rejoindre d'autres fois BQ, je n'ai pas pensé à l'essayer ici .. – pkrengel

+0

Je l'ai trouvé après une expérimentation assez lourde avec nest() car c'est l'une des fonctionnalités les plus faibles et les plus demandées –