【问题标题】:How to import a large bigquery table into jupyter lab?如何将大型 bigquery 表导入 jupyter 实验室?
【发布时间】:2022-06-18 04:50:04
【问题描述】:

在 Big Query 中,我有一个包含 608 GB 数据、5000 万行和 2651 列的表。在进行任何建模之前,我正在尝试将其作为熊猫数据框加载到 Jupyter Lab 中。我正在使用 %%bigquery 将查询结果保存到 pandas 数据框中作为目的地。但是,由于尺寸很大,我遇到了错误。我遵循了文档 here 和一些建议使用 LIMIT 和设置 query.allow large results = True 的 stackoverflow 讨论 (this)。但是,我无法确定如何将它们应用于我的具体问题。

请多多指教。

谢谢。

【问题讨论】:

  • 我很想建议我们着眼于总体目标而不是这种技术方法。一旦数据在 Jupyter 中,您打算如何处理这些数据?您是否可以“在”BigQuery 本身中进行处理,而不是从 BigQuery 中导出然后进行处理?

标签: python google-bigquery jupyter-notebook


【解决方案1】:

您可以使用storage-api 从 BQ 导出大量数据。您可以查看此示例来实现该目标。

from google.cloud import bigquery

bqclient = bigquery.Client()

# Download query results.
query_string = """
SELECT
CONCAT(
    'https://stackoverflow.com/questions/',
    CAST(id as STRING)) as url,
view_count
FROM `bigquery-public-data.stackoverflow.posts_questions`
WHERE tags like '%google-bigquery%'
ORDER BY view_count DESC
"""

dataframe = (
    bqclient.query(query_string)
    .result()
    .to_dataframe(
        # Optionally, explicitly request to use the BigQuery Storage API. As of
        # google-cloud-bigquery version 1.26.0 and above, the BigQuery Storage
        # API is used by default.
        create_bqstorage_client=True,
    )
)
print(dataframe.head())

另一种选择是使用 Google Cloud Storage 存储桶,直接从 gcs 读取到 dataframe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2018-08-08
    • 2017-03-23
    • 1970-01-01
    • 2018-10-03
    • 2021-05-03
    • 2019-03-30
    相关资源
    最近更新 更多