【问题标题】:How to get the count of loaded rows into BigQuery through csv如何通过 csv 获取加载到 BigQuery 中的行数
【发布时间】:2019-06-12 09:10:45
【问题描述】:

我正在通过 Python 将 csv 文件加载到 BigQuery 中,并且根据日志记录机制,我想打印在 Day 分区的 BigQuery 表中加载的行数

我在下面使用的代码给出了整个表的计数,但我想要每天的行数,这意味着每个当前分区。

所以如果昨天我加载了2 rows 而今天我加载了3 rows 那么 destination_table.num_rows = 5 (total count)

但我想要 3 ,仅在当前 Day 分区中加载的行数

 destination_table = client.get_table(dataset_ref.table("{stg_table_1}".format(stg_table_1=self.projconfig.stg_table_1)))
        print("Loaded {} rows.".format(destination_table.num_rows))

【问题讨论】:

    标签: python google-bigquery


    【解决方案1】:

    使用

    可以更轻松地检查加载作业的结果

    load_job.result() # wait for the job to finish load_job.output_rows

    而不是在加载数据后查询目标表。 文档here

    LE:或此处的文档:https://googleapis.dev/python/bigquery/latest/generated/google.cloud.bigquery.job.LoadJob.html

    【讨论】:

    • 我不想为此运行查询作业,而是更愿意在加载过程本身期间获取加载的行,以便了解当前运行加载了多少行跨度>
    • 您可以使用当前运行的 num_dml_affected_rows 来做到这一点。
    • 我收到此错误 print("Loaded {} rows.".format(destination_table.num_dml_affected_rows)) AttributeError: 'Table' object has no attribute 'num_dml_affected_rows'
    • 这是加载数据的 QueryJob 的一个属性。我想你有类似job = client.query(query) 的东西,然后你可以使用job.num_dml_affected_rows
    • @MitchellTracy 我用新链接更新了答案。
    猜你喜欢
    • 2018-02-25
    • 1970-01-01
    • 2014-11-02
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多