2017-11-13 2 views
2

のPython経由GoogleのBigQueryの:私はBQのバージョン0.28とpythonでGoogleのBigQueryのビューを作成するトラブルを抱えている、すべてのバージョンのクラウド・BigQueryのグーグル0.27.0対0.28.0

をビューを作成します約2週間前に出てきた図書館です。私は問題が私の側にあり、私が行方不明であることは間違いないと確信していますが、私は問題を見つけることができません。

私は穏やかで、私はオンラインでたくさんの質問をしませんが、私はかなり困惑しています。 私はここに、また完全に無能ではないよ、いくつかの詳細は以下のとおりです。私はきた私のpython経由BQに対して実行してきた他のすべてのコマンドは大丈夫です、私は私のGOOGLE_APPLICATION_CREDENTIALSが

  • 正しく設定されている
    1. (client.create_tableでtable.createを()に代わる):私は問題が https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4038 を "修正" BigQueryの周りだと思う https://cloud.google.com/bigquery/docs/python-client-migration

    2. を見直し#4038

    3. 私は私のpython 2.7.12(、いつでもすぐに企業のバージョンのものをアップグレードすることはできません)

    問題によ標準SQL

  • 対遺産を試してみましたか?以下の2番目のブロックのコードは、スキーマとレコードのないTABLEを作成します。代わりにVIEWを作成する必要があります。

    sudoのピップインストール-IvをGoogleクラウド-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() 
    

    上記作品作成罰金、ビュー、素晴らしいです!

    下記のとおり、テーブルのみが作成され、行はなく、スキーマはありません!


    sudoのピップアンインストールグーグル・クラウドのBigQuery

    sudoのピップインストール-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) 
    

    その他のリンク:

    ご迷惑をおかけして申し訳ありません。

    リッチ

  • 答えて

    3

    あなたはとても近かったです!

    問題が

    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) 
    
    +0

    は完全に働いた、非常に多くのティムをありがとうございました! –

    0

    のようにティムの答えは完璧だった、どうもありがとうございました。

    はここで最終的なコードされています

    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) 
    
    関連する問題