首页 > 解决方案 > 将 Pandas DF 加载到 Big Query 失败

问题描述

我使用以下代码(基于示例 pandas-gbq-migration)如下:

from google.cloud import bigquery
import pandas
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "link_to_credentials.json"

df = pandas.DataFrame(
    {
        'my_string': ['a', 'b', 'c'],
        'my_int64': [1, 2, 3],
        'my_float64': [4.0, 5.0, 6.0],
    }
)
client = bigquery.Client()
dataset_ref = client.dataset('TMP')
table_ref = dataset_ref.table('yosh_try_uload_from_client')

client.load_table_from_dataframe(df, table_ref).result()

我收到以下错误:

ImportError: Unable to find a usable engine; tried using: 'pyarrow', 'fastparquet'.
pyarrow or fastparquet is required for parquet support 

在看了一些这样的问题之后:

google-cloud-bigquery-load-table-from-dataframe-parquet-attributeerror:https://cloud.google.com/bigquery/docs/pandas-gbq-migration

我了解我需要更改配置中的某些内容(也许添加架构?)

有人可以在这里帮助我吗,我无法从文档中了解如何做到这一点。

提前致谢!

标签: pythonpandasgoogle-bigquery

解决方案


您需要安装pyarrow文档指出,除非您有镶木地板引擎,否则ImportError将提出)。该load_table_from_dataframe方法将数据帧写入 parquet,并在加载作业中将源格式设置为 parquet。我不太确定为什么会做出这个选择,但它是硬编码的,安装pyarrow比使用不同格式自己实现更简单、更安全。


推荐阅读