将bigQuery表导出到google数据存储会运行到AttributeError异常中

时间:2018-03-26 20:36:37

标签: google-cloud-platform google-bigquery google-python-api

我正在尝试将表格从google bigQuery导出为google数据存储作为json文件。

运行此python代码段

from google.cloud import bigquery

client = bigquery.Client()
bucket_name = 'mybucket'

destination_uri = 'gs://{}/{}'.format(bucket_name, 'myfile.json')
dataset_ref = client.dataset('mydataset')
table_ref = dataset_ref.table('mytable')
job_config = bigquery.job.ExtractJobConfig()
job_config.destination_format = (
    bigquery.DestinationFormat.NEWLINE_DELIMITED_JSON)

extract_job = client.extract_table(
    table_ref, destination_uri, job_config=job_config
    )
extract_job.result()

我收到此错误

AttributeError: module 'google.cloud.bigquery' has no attribute 'DestinationFormat'

我按照官方文档 https://cloud.google.com/bigquery/docs/exporting-data#configuring_export_options

这里我的python包版本

  • google-api-core(1.1.0)
  • google-auth(1.4.1)
  • google-cloud-bigquery(0.31.0)
  • google-cloud-core(0.28.1)
  • google-resumable-media(0.3.1)
  • googleapis-common-protos(1.5.3)

如何使用最新的软件包/文档接收此错误?

提前感谢您的帮助 此致

2 个答案:

答案 0 :(得分:1)

您可以尝试用bigquery.DestinationFormat.NEWLINE_DELIMITED_JSON替换bigquery.job.DestinationFormat.NEWLINE_DELIMITED_JSON吗?这可能是文档中的一个错误。

答案 1 :(得分:0)

确保本地安装的版本具有所需的属性,可能您有旧版本:打开Python控制台,导入bigquery,以及dir或help(bq)等,以查看属性是否存在。如果不是,则pip更新gcloud软件包并重试。

如果从Python shell中实际存在属性,但在运行脚本时则不然,那么必须安装第二版Python。

可能还有其他原因,但让我们看看你发现了什么。