亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

bigquery.client.query()可以查看2個結果集嗎?

bigquery.client.query()可以查看2個結果集嗎?

慕標5832272 2022-12-20 11:08:27
我想使用 bigquery API 運行 2 個 Select 參數。例如,如果我運行以下查詢SELECT 1;SELECT 2;當我使用以下 python 腳本運行它時,我只獲得了第二個查詢的結果。def runquery();    bqclient = bigquery.client()    query = """ SELECT 1;                 SELECT 2;"""    query_job = bqclient.query(query)    data = query_job.result()    rows = list(data)    print(rows)結果:[Row((2,), {'f0_': 0})]但是,如果我在 bigquery query composer 中運行相同的查詢,我將能夠查看這兩個結果。我怎樣才能在 Bigquery API 結果集中獲得這兩個查詢結果?我需要在 client.query() 語句中添加 jobconfig 嗎?
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

這是遍歷腳本的快速示例。在此示例中,您的父作業屬于腳本類型,它由兩個都是 select 語句的子作業組成。父作業完成后,您可以調用list_jobs父過濾器來查找子作業并詢問它們的結果。子作業不嵌套,因此您只需擔心父作業下的一級子作業。


def multi_statement_script():


    from google.cloud import bigquery


    bqclient = bigquery.Client()

    query = """ SELECT 1; 

                SELECT 2;

            """


    parent_query = bqclient.query(query)

    # wait for parent job to finish (which completes when all children are done)

    parent_query.result()


    print("parent job {}".format(parent_query.job_id))

    children = bqclient.list_jobs(parent_job=parent_query.job_id)


    # note the jobs are enumerated newest->oldest, so the reverse 

    # ordering specified in the script

    for child in children:

        print("job {}".format(child.job_id))

        rows = list(child.result())

        print(rows)


查看完整回答
反對 回復 2022-12-20
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號