我想弄清楚如何獲得一個簡單的 bq 加載命令來使用https://godoc.org/cloud.google.com/go/bigquery#Table.LoaderFrom手動運行它看起來像這樣:bq load --source_format=AVRO --ignore_unknown_values --replace=true mydataset.mytable gs://mybucket/table/*在我的 golang 中使用 exec.Command() 成功運行它看起來像這樣:exec.Command("bq", "load", "--source_format=AVRO", "--ignore_unknown_values", "--replace=true", "mydataset.mytable", "gs://mybucket/table/*")但是,在嘗試加載和 job.wait 成功運行時,我無法讓這個程序在沒有分段錯誤的情況下運行它似乎在程序的 job.wait 行出現分段違規package mainimport ( "context" "log" "cloud.google.com/go/bigquery")func main(){ ctx := context.Background() client, err := bigquery.NewClient(ctx, "my-project-id") if err != nil { // TODO: Handle error. } gcsRef := bigquery.NewGCSReference("gs://mybucket/table/*") gcsRef.SourceFormat = "AVRO" gcsRef.IgnoreUnknownValues = true // TODO: set other options on the GCSReference. ds := client.Dataset("mydataset") loader := ds.Table("mytable").LoaderFrom(gcsRef) // TODO: set other options on the Loader. job, err := loader.Run(ctx) if err != nil { // TODO: Handle error. } status, err := job.Wait(ctx) //seg faults right here if err != nil { // TODO: Handle error. } if status.Err() != nil { // TODO: Handle error. }}
1 回答

手掌心
TA貢獻1942條經驗 獲得超3個贊
恐慌可能來自對作業變量的 nil 指針引用。
我建議包括一個log.Fatal(err)
在你所有的err!= nil
街區。
這將幫助您更清楚地了解工作分配不正確的原因。
當你在 go log 中編寫像這樣的腳本時。Fatal 是退出程序并準確打印問題所在的好方法。
使用 go,你總是試圖將錯誤冒泡到堆棧中,以確定代碼是否應該繼續執行,是否可以恢復,或者它是否只是一個致命的事情,你應該結束程序。
- 1 回答
- 0 關注
- 115 瀏覽
添加回答
舉報
0/150
提交
取消