gpt4 book ai didi

python - 谷歌 BigQuery : creating a view via Python google-cloud-bigquery version 0. 27.0 与 0.28.0

转载 作者:行者123 更新时间:2023-11-28 22:23:04 24 4
gpt4 key购买 nike

全部,

我在使用大约两周前发布的 bq 库 0.28 版的 python 中创建 Google BigQuery View 时遇到了问题。我很确定问题出在我这边,我遗漏了一些东西,但我找不到问题所在。

请保持温和,我不会在网上问很多问题,但我很困惑。 我也不是完全无能,这里有一些细节:

  1. 我的 GOOGLE_APPLICATION_CREDENTIALS 设置正确
  2. 我通过 python 针对 bq 运行的所有其他命令都很好
  3. 我已经查看了 https://cloud.google.com/bigquery/docs/python-client-migration

  4. 我认为问题在于“修复” https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4038BigQuery:将 table.create() 替换为 client.create_table() #4038

  5. 我尝试过传统 sql 与标准 sql
  6. 我使用的是 python 2.7.12(不能很快升级,企业版)

问题?下面第二个 block 中的代码创建了一个没有模式和记录的表。它显然应该创建一个 VIEW,对吧?

sudo pip install -Iv google-cloud-bigquery==0.27.0

from google.cloud import bigquery

project=None
dataset_name = 'my_dataset_id'
view_name = 'vw_dummy_data20'
sqlQuery = 'select record_id as id, UPPER(first_name) as first_name, UPPER(last_name) as last_name from [my_project_code:my_dataset_id.dummy_data13]'

bigquery_client = bigquery.Client(project=project)
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(view_name)
table.view_query = sqlQuery

table.create()

以上工作正常,已创建 View ,太棒了!

下面,只创建了一个表,没有行,没有模式,糟糕!


sudo pip uninstall google-cloud-bigquery

sudo pip install -Iv google-cloud-bigquery==0.28.0

from google.cloud import bigquery

project=None
dataset_name = 'my_dataset_id'
view_name = 'vw_dummy_data21'
sqlQuery = 'select record_id as id, UPPER(first_name) as first_name, UPPER(last_name) as last_name from [my_project_code:my_dataset_id.dummy_data13]'

bigquery_client = bigquery.Client(project=project)
dataset_ref = bigquery_client.dataset(dataset_name)
table_ref = dataset_ref.table(view_name)
table_ref.view_query = sqlQuery
table_ref.view_use_legacy_sql = True

table = bigquery.Table(table_ref)
bigquery_client.create_table(table)

其他链接:

任何有用的想法将不胜感激。

谢谢并致以最诚挚的问候......Rich

最佳答案

你离得太近了!

问题出在线条上

table_ref.view_query = sqlQuery
table_ref.view_use_legacy_sql = True

TableReference 类不包含这些属性。相反,您必须将它们填充到 Table 类中,如

table = bigquery.Table(table_ref)
table.view_query = sqlQuery
table.view_use_legacy_sql = True

bigquery_client.create_table(table)

关于python - 谷歌 BigQuery : creating a view via Python google-cloud-bigquery version 0. 27.0 与 0.28.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47273175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com