小编Gio*_*toF的帖子

从大熊猫 DataFrame 加载 BigQuery 表

我正在尝试使用官方 python客户端库将相对较大的pandas数据帧加载df到 Google BigQuery 表中。table_refgoogle-cloud-bigquery

到目前为止,我已经尝试了两种不同的方法:

1)直接从内存中的数据帧加载表

client = bigquery.Client()
client.load_table_from_dataframe(df, table_ref)
Run Code Online (Sandbox Code Playgroud)

2) 将数据帧保存到 Google Cloud Storage 中 uri 的 parquet 文件中parquet_uri,并从该文件加载表:

df.to_parquet(parquet_uri)
client = bigquery.Client()
client.load_table_from_uri(parquet_uri, table_ref)
Run Code Online (Sandbox Code Playgroud)

两种方法都会导致相同的错误:

google.api_core.exceptions.BadRequest:400 查询执行期间超出资源:UDF 内存不足。;无法读取 Parquet 文件 [...]。如果文件包含太大的行,或者为查询列加载的页面的总大小太大,则可能会发生这种情况。

该数据框df有 3 列和 1.84 亿行。保存为 parquet 文件格式时,占用 1.64 GB。

有没有办法使用官方 python 客户端库将这样的数据帧上传到 BigQuery 表中?

先感谢您,

乔瓦尼

python pandas google-bigquery google-cloud-platform parquet

5
推荐指数
1
解决办法
5723
查看次数