Google Cloud BigQuery load_table_from_dataframe()实木复合地板AttributeError

时间:2018-06-24 21:03:15

标签: python pandas google-bigquery

我正在尝试使用BigQuery包与Pandas DataFrames进行交互。在我的场景中,我在BigQuery中查询一个基表,使用.to_dataframe(),然后将其传递给load_table_from_dataframe()以将其加载到BigQuery中的新表中。

我最初的问题是str(uuid.uuid4())(用于随机ID)会自动转换为字节而不是字符串,因此我强制使用模式,而不是允许它自动检测要做什么。 / p>

但是,现在,我传递了一个job_config和一个包含该模式的job_config字典,现在我得到了这个错误:

  

在load_table_from_dataframe中的文件“ /usr/local/lib/python2.7/dist-packages/google/cloud/bigquery/client.py”,第903行

     

job_config.source_format = job.SourceFormat.PARQUET   AttributeError:“ dict”对象没有属性“ source_format”

我已经安装了PyArrow,并尝试也安装FastParquet,但这并没有帮助,并且在我强制实施模式之前没有发生这种情况。

有什么想法吗?

https://google-cloud-python.readthedocs.io/en/latest/bigquery/usage.html#using-bigquery-with-pandas

https://google-cloud-python.readthedocs.io/en/latest/_modules/google/cloud/bigquery/client.html#Client.load_table_from_dataframe

查看实际的包似乎可以强制使用Parquet格式,但是就像我说的,以前我没有问题,只是现在我正尝试提供表模式。

编辑:这仅在我尝试写入BigQuery时发生。

1 个答案:

答案 0 :(得分:2)

弄清楚了。在浏览完Google的文档后,我忘了输入:

load_config = bigquery.LoadJobConfig()
load_config.schema = SCHEMA

糟糕。永远不要从BigQuery包中加载配置字典。