【问题标题】:Delete bigquery table content with pandas-gbq使用 pandas-gbq 删除 bigquery 表内容
【发布时间】:2020-09-24 15:08:07
【问题描述】:

我正在使用“pandas-gbq”库从表中删除大查询行,效果很好。

但是,由于这是一个“读取”操作,默认情况下会获取整个表格内容,并且我不希望它发生,因为这是不必要的。

下面是我当前的代码,关于在不将表作为 df 获取的情况下执行删除操作的方法有什么想法吗?

提前致谢。

删除 gbq 表行 - 今天和昨天

sql = """
DELETE FROM `bla.bla.bla`
WHERE Day = '{today}' OR Day = '{yesterday}'
"""
sql = sql.format(today = curr_date, yesterday= prev_date)
pandas_gbq.read_gbq(sql, project_id=project_id, credentials=credentials)

【问题讨论】:

    标签: python sql pandas google-bigquery


    【解决方案1】:

    为什么不使用google-cloud-bigquery 来调用查询,这样可以更好地访问 BQ API 界面?

    pandas_gbq 本质上只提供了一个子集来实​​现与 pandas 生态系统的集成。有关两者之间差异和迁移的更多信息,请参阅this document

    以下是使用 google-cloud-bigquery 的快速等效项:

    def do_the_thing():
    
        from google.cloud import bigquery
    
        bqclient = bigquery.Client()
        sql = """
            DELETE FROM `bla.bla.bla`
            WHERE Day = '{today}' OR Day = '{yesterday}'
        """
    
        query = bqclient.query(sql)
        print("started query as {}".format(query.job_id))
        # invoke result() to wait until completion
        # DDL/DML queries don't return rows so we don't need a row iterator
        query.result()
    

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 2022-11-11
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多