【问题标题】:Google Cloud BigQuery load_table_from_dataframe() Parquet AttributeErrorGoogle Cloud BigQuery load_table_from_dataframe() Parquet AttributeError
【发布时间】:2018-12-03 11:11:57
【问题描述】:

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

我最初的问题是 str(uuid.uuid4()) (用于随机 ID)被自动转换为字节而不是字符串,所以我强制使用模式而不是允许它自动检测要制作的内容。

不过,现在我传递了一个带有包含架构的 job_config dict 的 job_config,现在我得到了这个错误:

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

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 时。

【问题讨论】:

    标签: python pandas google-bigquery


    【解决方案1】:

    想通了。在浏览了谷歌的文档后,我忘记了:

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

    哎呀。从未从 BigQuery 包中加载配置字典。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-10
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      • 2022-01-07
      相关资源
      最近更新 更多