3

アイデアは、bq ツールを使用して、BigQuery システムに csv 形式で保存されたデータを R セッションにフィードすることです。bq ツールの出力には、データに加えて、ジョブ ステータスや更新の警告メッセージなどの不要なメッセージが表示されます。bq ツールがクエリのデータのみを csv で返し、他のメッセージが表示されないようにするためのフラグはありますか?

> cmdbq <- "bq --format=csv query \"SELECT id, SEC_TO_TIMESTAMP(timestamp) AS time FROM publicdata:samples.wikipedia LIMIT 5\""
> r1 <- shell(cmdbq,intern=TRUE)
> r1
 [1] "\rWaiting on bqjob_r1b11c1f4_00000144c13cea58_1 ... (0s) Current status: DONE   " "id,time"                                                                         
 [3] "18524,2009-08-03 09:13:51"                                                        "2252318,2008-11-24 00:41:42"                                                     
 [5] "3430772,2007-01-11 05:43:19"                                                      "11170233,2007-05-11 12:13:36"                                                    
 [7] "1008805,2007-06-19 20:34:13"                                                      ""                                                                                
 [9] "There are available updates for some Cloud SDK components.  To "                  "install them, please run:"                                                       
[11] " $ gcloud components update"                                                      ""                                                                                
> r2 <- read.csv(text=paste(r1[2:7],collapse="\n"),stringsAsFactors=FALSE)
> r2
        id                time
1    18524 2009-08-03 09:13:51
2  2252318 2008-11-24 00:41:42
3  3430772 2007-01-11 05:43:19
4 11170233 2007-05-11 12:13:36
5  1008805 2007-06-19 20:34:13
> 

注: bigrquery パッケージの存在は認識していますが、コードのこの部分が foreach 並列化ループで実行され、各ノードの認証手順が簡素化されるため、このアプローチを使用したいと考えています。

4

2 に答える 2

4

更新の必要性に関するメッセージが stderr に出力されます。これは、stdout のみをキャプチャする場合に、出力のスクレイピングに干渉しないようにするためです。

または、実行してこのメ​​ッセージを永久に無効にすることもできます

$ gcloud config set --section component_manager disable_update_check true

ただし、今後は手動で更新を確認する必要があります。

于 2014-03-14T21:57:20.363 に答える