BigQuery无效的数据集ID

时间:2018-05-14 03:32:19

标签: python google-bigquery


我曾经在用户界面查询 这次,我在云外壳中,尝试通过python

访问我的数据集和表
package main

import (
    "bufio"
    "fmt"
    "os"
    "sync"
)

func hashPhoneNumers(phoneNO string, ch chan struct{}, group *sync.WaitGroup) {
    do_hash(phoneNO)
    <-ch
    group.Done()
}

func do_hash(s string) {
    fmt.Println("do hash: ", s)
}

func main() {
    c := make(chan struct{}, 100)
    file, err := os.Open("file.txt")
    if err != nil {
        fmt.Println(err)
        os.Exit(-1)
    }
    defer file.Close()
    line := bufio.NewScanner(file)

    wg := sync.WaitGroup{}
    for line.Scan() {
        // with a maximum of 100 concurrent process maximum
        c <- struct{}{}
        wg.Add(1)
        go hashPhoneNumers(line.Text(), c, &wg)
    }

    // wait all goroutines done
    wg.Wait()
    close(c)
}

我收到了以下错误...

  

google.api_core.exceptions.BadRequest:400 GET https://www.googleapis.com/bigquery/v2/projects/gcd-my-reporting/datasets/mytest-0001:reports_test:无效的数据集ID“mytest-0001:reports_test”。数据集ID必须是al   phanumeric(加上下划线,破折号和冒号),最多不超过1024个字符。

由于某些原因我无法修改数据集ID,有没有想法修复此问题?

4 个答案:

答案 0 :(得分:2)

您不必修改participants,只需指定dataset id而不是dataset id。如果您出于任何原因要指定项目,则必须按照this document中的说明定义project id时执行此操作。

代码将是:

client

答案 1 :(得分:0)

假设您的项目名称为mytest-0001,则应将数据集ID设置为'reports_test'。看起来您将项目名称包含在数据集ID中,这将无效。

答案 2 :(得分:0)

您只需要从dataset_id中删除project_id,然后与table_id类似,只需输入数据集和表的名称即可。

答案 3 :(得分:0)

您可以使用datasettable这样的名称:

from google.cloud import bigquery

bigqueryClient = bigquery.Client()
tableRef = bigqueryClient.dataset(datasetName).table(tableName)