Agréger des données à l'aide d'une boucle parallèle
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Des requêtes distinctes envoyées à un ensemble de données public BigQuery renvoient chacune le nombre de mots dans un document ou un ensemble de documents. Une variable partagée permet au nombre de mots de s'accumuler et d'être lu une fois toutes les itérations terminées.
En savoir plus
Pour obtenir une documentation détaillée incluant cet exemple de code, consultez les articles suivants :
Exemple de code
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],[],[],[],null,["# Aggregate data using a parallel loop\n\nSeparate queries to a public BigQuery dataset each return the number of words in a document, or set of documents. A shared variable allows the count of the words to accumulate and be read after all the iterations complete.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Execute workflow steps in parallel](/workflows/docs/execute-parallel-steps)\n\nCode sample\n-----------\n\n### YAML\n\n # Use a parallel loop to make ten queries to a public BigQuery dataset and\n # use a shared variable to accumulate a count of words; after all iterations\n # complete, return the total number of words across all documents\n main:\n params: [input]\n steps:\n - init:\n assign:\n - numWords: 0\n - corpuses:\n - sonnets\n - various\n - 1kinghenryvi\n - 2kinghenryvi\n - 3kinghenryvi\n - comedyoferrors\n - kingrichardiii\n - titusandronicus\n - tamingoftheshrew\n - loveslabourslost\n - runQueries:\n parallel: # 'numWords' is shared so it can be written within the parallel loop\n shared: [numWords]\n for:\n value: corpus\n in: ${corpuses}\n steps:\n - runQuery:\n call: googleapis.bigquery.v2.jobs.query\n args:\n projectId: ${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}\n body:\n useLegacySql: false\n query: ${\"SELECT COUNT(DISTINCT word) FROM `bigquery-public-data.samples.shakespeare` \" + \" WHERE corpus='\" + corpus + \"' \"}\n result: query\n - add:\n assign:\n - numWords: ${numWords + int(query.rows[0].f[0].v)} # first result is the count\n - done:\n return: ${numWords}\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=workflows)."]]