亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法讓 golang 和包 bigquery 工作以加載到大查詢

無法讓 golang 和包 bigquery 工作以加載到大查詢

Go
婷婷同學_ 2023-05-02 10:17:08
我想弄清楚如何獲得一個簡單的 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,你總是試圖將錯誤冒泡到堆棧中,以確定代碼是否應該繼續執行,是否可以恢復,或者它是否只是一個致命的事情,你應該結束程序。

查看完整回答
反對 回復 2023-05-02
  • 1 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號