从 bigquery 中获取数据而不重复

Posted

技术标签:

【中文标题】从 bigquery 中获取数据而不重复【英文标题】:Fetching data from bigquery without repetition 【发布时间】:2021-02-05 22:10:35 【问题描述】:

使用 Google 的 bigquery Python API,是否可以分批从大查询表 (GCP) 中获取数据而无需重复(即分小批下载大型数据集,而不是一次全部下载)?

例如,如果我有一个包含 1000 万行的表,我是否可以运行 10 次数据获取迭代,在每次迭代中下载 100 万个唯一行和新行而不重复(即,同一行仅在所有行中获取一次10 次迭代)?

【问题讨论】:

我可以看到这个doc 可能会帮助您从一组记录中获取不同的数据 @Mahboob,我的主要目标是分批下载整个数据集,而不是一次全部下载。 【参考方案1】:

我用熊猫来做这些事情

import pandas as pd
import numpy as np
from google.oauth2 import service_account
import pandas_gbq
credentials = service_account.Credentials.from_service_account_file('yourkey.json')
10MrowsQuery = f'select * from 10MrowTable")'
dataframe = pd.read_gbq(10MrowsQuery, project_id="yourgcpprojectname", dialect='standard', credentials=credentials)

【讨论】:

我知道如何通过 Pandas 从 bq 下载数据。我正在考虑分批下载一个大表,而不是一次全部下载。

以上是关于从 bigquery 中获取数据而不重复的主要内容,如果未能解决你的问题,请参考以下文章

您可以从大查询 SDK 中的 Select 语句中获取列名而不运行它吗

从 BigQuery 中的重复嵌套列中获取参数数组

从BigQuery中重复的嵌套列获取参数数组

从对象数组中获取数据 sql BigQuery

如何从 bigquery nodejs api 获取整数?

从 BigQuery 中的时间戳数据类型中获取每月前 3 个标签数量