错误:模块“google.cloud.bigquery_storage”没有属性“BigQueryReadClient”

Posted

技术标签:

【中文标题】错误:模块“google.cloud.bigquery_storage”没有属性“BigQueryReadClient”【英文标题】:Error: module 'google.cloud.bigquery_storage' has no attribute 'BigQueryReadClient' 【发布时间】:2020-12-22 09:57:19 【问题描述】:

如何解决这个错误?

错误:模块“google.cloud.bigquery_storage”没有属性 'BigQueryReadClient'

无法查询 BigQuery 表并将结果保存到 Pandas DataFrame。 包:

google-api-core==1.23.0
google-api-python-client==1.12.8
google-auth==1.23.0
google-auth-httplib2==0.0.4
google-auth-oauthlib==0.4.1
google-bigquery==0.14
google-cloud-bigquery==2.6.1
google-cloud-bigquery-storage==2.1.0
google-cloud-core==1.4.3
google-crc32c==1.0.0
google-resumable-media==1.1.0
googleapis-common-protos==1.51.0
grpcio==1.34.0
grpcio-gcp==0.2.2
pandas==1.1.5
pandas-gbq==0.13.2
pyarrow==2.0.0

查询:

def get_orders(bqclient,
               project_id,
               dataset_id,
               orders_table_id,
               datetime_start,
               datetime_end):

    query = f"""
        SELECT *
        FROM `project_id.dataset_id.orders_table_id`
        WHERE
            CreatedDatetime BETWEEN TIMESTAMP('datetime_start') AND TIMESTAMP('datetime_end')
    """
    print(query)
    orders = None
    try:
        query_job = bqclient.query(query)
        orders = query_job.result().to_dataframe()
    except Exception as exception:
        print(f'Error while getting orders: exception')
    finally:
        return orders

【问题讨论】:

【参考方案1】:

此代码看起来使用的是 google-cloud-bigquery 而不是 google-cloud-bigquery-storage。 bqclient 是如何创建的?是这样的吗?

from google.cloud import bigquery
bqclient = bigquery.Client()

尝试在您的代码中找到对BigQueryReadClient 的引用并将其删除。尝试删除google-cloud-bigquery-storage==2.1.0

【讨论】:

以上是关于错误:模块“google.cloud.bigquery_storage”没有属性“BigQueryReadClient”的主要内容,如果未能解决你的问题,请参考以下文章

导入节点模块时出现流错误“无法解析模块”

“未找到模块:错误:无法解析模块”错误在 signrequest-client 角度

找不到模块:错误:无法解析模块“fs”

Angular2延迟加载模块错误'找不到模块'

我的MAC编译LUA-CJSON模块时报如下错误,求大神解答~~!

模块导入 (C++) --- 错误“模块文件映射无效”