将Pandas DF加载到大查询失败

时间:2019-01-07 09:45:02

标签: python pandas google-bigquery

我要使用以下代码(基于示例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

我了解我需要在配置中进行一些更改(也许添加模式?)

有人可以帮助我吗,我没能从文档中了解如何做到这一点。

谢谢!

1 个答案:

答案 0 :(得分:4)

您需要安装pyarrowdocs表示,除非您有实木复合地板引擎,否则将引发ImportError)。 load_table_from_dataframe方法将数据帧写入镶木地板,并在加载作业中将源格式设置为镶木地板。我不太确定为什么要做出这个选择,但是它是硬编码的,与使用其他格式进行自己的实现相比,安装pyarrow更直接,更安全。