Disons que je veux effectuer un traitement sur une table (telle que sample Github commits) qui a une structure imbriquée utilisant un JavaScript UDF. Je peux vouloir changer les champs que je regarde dans l'UDF pendant que je répète son implémentation, ainsi je décide juste de passer des rangées entières de la table à lui. Mon UDF finit par regarder quelque chose comme ceci:Comment puis-je passer une ligne de ma table à une UDF sans spécifier le type complet?
#standardSQL
CREATE TEMP FUNCTION GetCommitStats(
input STRUCT<commit STRING, tree STRING, parent ARRAY<STRING>,
author STRUCT<name STRING, email STRING, ...>>)
RETURNS STRUCT<
parent ARRAY<STRING>,
author_name STRING,
diff_count INT64>
LANGUAGE js AS """
[UDF content here]
""";
J'appelle la fonction d'une requête telle que:
SELECT GetCommitStats(t).*
FROM `bigquery-public-data.github_repos.sample_commits` AS t;
La partie la plus lourde de la déclaration UDF est le struct d'entrée, depuis que je suis pour inclure tous les champs imbriqués et leurs types. Y a-t-il une meilleure manière de faire cela?
Comment avez-vous découvert tout ce qui informations précieuses sans documentation officielle? –
Procès et erreur bien sûr :) –