Google BigQuery:通过Python创建视图Google cloud BigQuery版本0.27.0 vs.0.28.0

Google BigQuery:通过Python创建视图Google cloud BigQuery版本0.27.0 vs.0.28.0,python,python-2.7,google-bigquery,Python,Python 2.7,Google Bigquery,全部, 我在用python创建GoogleBigQuery视图时遇到了问题,大约两周前,bq库的版本是0.28。我很确定问题在我这边,我遗漏了一些东西,但我找不到问题所在 请温柔一点,我不会在网上问很多问题,但我很困惑。 我也不是完全无能,以下是一些细节: 我已正确设置我的GOOGLE\u应用程序\u凭据 我通过python对bq运行的所有其他命令都很好 我已经复习过了 我认为问题在于“修复” BigQuery:将table.create()替换为client.create#table()#4

全部,

我在用python创建GoogleBigQuery视图时遇到了问题,大约两周前,bq库的版本是0.28。我很确定问题在我这边,我遗漏了一些东西,但我找不到问题所在

请温柔一点,我不会在网上问很多问题,但我很困惑。 我也不是完全无能,以下是一些细节:

  • 我已正确设置我的GOOGLE\u应用程序\u凭据
  • 我通过python对bq运行的所有其他命令都很好
  • 我已经复习过了

  • 我认为问题在于“修复” BigQuery:将table.create()替换为client.create#table()#4038

  • 我尝试过传统sql和标准sql
  • 我使用的是python 2.7.12(短期内无法升级,企业版)
  • 问题是什么?下面第二个块中的代码创建了一个没有模式和记录的表。它显然应该创建一个视图,对吗

    sudopip安装-Iv谷歌云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()
    

    上面的作品很好,视野开阔,很棒

    下面,只创建了一个表,没有行,没有模式,恶心


    sudopip卸载googlecloudbigquery

    sudopip安装-Iv谷歌云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 = bigquery.Table(table_ref)
    table.view_query = sqlQuery
    table.view_use_legacy_sql = True
    
    bigquery_client.create_table(table)
    

    蒂姆的回答很完美,非常感谢

    以下是最终代码:

    from google.cloud import bigquery
    bigquery_client = bigquery.Client(project=project)
    dataset_ref = bigquery_client.dataset(dataset_name)
    table_ref = dataset_ref.table(view_name)
    table = bigquery.Table(table_ref)
    table.view_query = sqlQuery
    table.view_use_legacy_sql = True
    
    bigquery_client.create_table(table)