Aggregare i dati utilizzando un loop parallelo
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Query separate su un set di dati pubblico di BigQuery restituiscono ciascuna il numero di parole in un documento o in un insieme di documenti. Una variabile condivisa consente di accumulare il conteggio delle parole e di leggerlo al termine di tutte le iterazioni.
Per saperne di più
Per la documentazione dettagliata che include questo esempio di codice, vedi quanto segue:
Esempio di codice
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","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)."]]