google-bigquery - GCP BigQuery 在尝试获取架构的状态时抛出无效的 URL,即使架构存在
问题描述
架构很好地存在,我可以在 BigQuery 上复制和运行。在 requirements.txt 我们使用的是最新的包(google-cloud-bigquery)
异常无效的 URL 'None/bigquery/v2/projects/XXXXXX/XXXXXX 未提供架构。也许您的意思是http://None/bigquery/v2/projects/XXXX/XXX
代码片段:
client = bigquery.Client(project="XXXXXXXX")
client_bq.get_table(table_ref)
解决方案
我不清楚你到底传递了什么变量table_ref
,所以我将解释这个方法的期望,希望能帮助你做对。
注意:小心你的
client
对象被用作client_bq
,它不会运行。
根据文档,方法client.get_table(table_ref)
( docs ) 期望 a是指向表的指针,如果是 a ,则它必须包含 a 、和,每个都由(dot) 分隔,例如,来自 BigQuery 的公共数据集:table_ref
table_ref
string
project ID
dataset ID
table ID
.
table_ref = "bigquery-public-data.noaa_historic_severe_storms.storms_2019"
鉴于此table_ref
,以下代码应该可以工作:
client = bigquery.Client(project="my_project_id")
client.get_table(table_ref)
另一方面,如果您想创建table_ref
为Table
对象,请注意您不需要提供schema
,此参数是可选的(docs)。
table_ref = bigquery.table.Table("bigquery-public-data.noaa_historic_severe_storms.storms_2019")
如果您的目标是创建一个有效的schema
,在文档中声明这是使用SchemaField
对象构建的,那么文档是此时的最佳参考,如果您想要一个示例,您可以通过保存Table
对象并获取schema
属性来获取它,如下所示:
>>> table = client.get_table(table_ref)
>>> table.schema
(在 Python 控制台中运行代码)
样本输出:
[SchemaField('magnitude', 'FLOAT', 'NULLABLE', 'Description', ()),
SchemaField('magnitude_type', 'STRING', 'NULLABLE', 'Description', ()),
SchemaField('flood_cause', 'STRING', 'NULLABLE', 'Description', ())]
推荐阅读
- javascript - 将 Material UI 中的网格列表和图标按钮用作具有 onClick 操作的单独按钮?
- python - while 条件或条件循环的问题(初学者)
- google-apis-explorer - Google Photos API 问题:没有 mediaItems 的响应
- assembly - 使用循环 8051 程序集将字符串移入寄存器
- python - 在 matplotlib.pyplot 中绘图时如何命名单个函数/图形?
- html - csrf 保护仅适用于某些 post 请求
- pandas - 通过基于另一列的唯一元素对不同列进行分组来折叠数据框
- regex - 这是否可以使用正则表达式来实现?
- python - 使用循环中的变量在循环中生成函数会导致变量的阴影效应
- javascript - 如何使用nodejs中的fs模块在同一目录中复制和写入文件?