python - 将 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
在看了一些这样的问题之后:
我了解我需要更改配置中的某些内容(也许添加架构?)
有人可以在这里帮助我吗,我无法从文档中了解如何做到这一点。
提前致谢!
解决方案
您需要安装pyarrow
(文档指出,除非您有镶木地板引擎,否则ImportError
将提出)。该load_table_from_dataframe
方法将数据帧写入 parquet,并在加载作业中将源格式设置为 parquet。我不太确定为什么会做出这个选择,但它是硬编码的,安装pyarrow
比使用不同格式自己实现更简单、更安全。
推荐阅读
- php - Laravel won't send anymore mails after testing my job class on prouction using "QUEUE_DRIVER=sync"
- http - How can I access 'Location' from HTTP response in Coffee script?
- python - Create multiple new dataframe columns from substring/regex matches in single column
- java - How to generating key pair from private key using Bouncy Castle
- debugging - Debugging NASM local labels with gdb
- postgresql - Creating a Postgres tablepsace on Mac on an external harddisk
- symfony - FosElastica 6 config problem with ElasticSearch 7.5 under Symfony 4.4
- arrays - Maximize AND on a sequence of XORs
- python - 隐藏工作表或有效隐藏 Excel 选项卡的 Pandas to_excel?
- python - Python:如何在每天的温度值之间迭代以创建每天的 json 温度数组?