2017-01-23 53 views
0

我試圖用內部datalab bq指令,但是當我嘗試使用它,它會彈出一個消息,並要求我建立我的憑據,如下圖所示,使用bq指令 - 憑據需要

enter image description here

但是,我無法將驗證碼粘貼到彈出消息中。基本上,我被困在這一步。

  1. 我在datalab中檢查了我的gcloud配置,它向我展示了正確的項目和帳戶。
  2. 我可以在我的終端中使用bq命令,它工作正常,無需每次都進行授權。

任何想法如何解決這個問題?謝謝。

回答

2

從長遠來看,我認爲我們會保存BQ的Datalab憑證。那麼在簽入Datalab後,!bq將使用保存的憑證。

作爲一種解決方法,您可以使用交互式命令提示符在Datalab外部運行bq,執行令牌驗證過程,然後將令牌文件複製到Datalab中。例如,假設您在託管Datalab的計算機上完成了驗證過程,則可以通過運行以下單元將creds文件複製到Datalab中:

!cp /content/.bigquery.v2.token〜/ .bigquery。 v2.token

而且每次重新啓動Datalab時都需要執行此操作。

+0

嗨,布拉德利,thx的答案。我對驗證過程有點困惑。我通常使用'gcloud auth login'來授權我的帳戶。但是我沒有得到任何文件/content/.bigquery.v2.token。另外,我在Docker鏡像中授權我的帳戶,並且在命令行工具中,我可以使用bq命令,但回到Datalab中,它仍然不起作用。這一次,它沒有給我驗證信息,但保持運行,沒有消息和結果。 – HaipengSu

+0

在我身邊,如果我第一次運行「bq show」,它會要求驗證。完成後,創建$ HOME/bigquery.v2.token文件。 你在Datalab中運行了哪個子命令?請注意,沒有數據集名稱的「bq show」需要很長時間才能返回。如果我運行「bq show [MyDatasetName]」,它會很快恢復。 –

+0

嗨,@Bradley,'bq show my_dataset'是我用來測試的命令。我今天再試一次,它很有效。我想,一旦我在datalab docker容器中驗證了我的帳戶,我需要重新啓動localhost或datalab容器才能使其工作。由於每次我重新啓動計算機,我都會從上次啓動相同的容器,這就是爲什麼我的憑證仍然存在。但是,我無法在容器內的任何位置找到bigquery.v2.token,只有一些配置文件和憑據文件位於/content/datalab/.config – HaipengSu