Как импортировать файл из Google Cloud Storage в H2O, работающую в R - PullRequest
0 голосов
/ 22 сентября 2019

Я бы хотел импортировать CSV-файл из моего хранилища Google Cloud Storage в H2O, работающий в R локально (h2o.init (ip = "localhost")).

Я пытался следовать инструкциям на http://docs.h2o.ai/h2o/latest-stable/h2o-docs/cloud-integration/gcs.html?highlight=environment.

Я уже могу загружать CSV-файлы из R в GCS и наоборот, используя пакет R cloud Cloudml.Поэтому я вполне уверен, что у меня правильно установлены полномочия.

Я пытался использовать Sys.setenv(GOOGLE_APPLICATION_CREDENTIALS = "/full/path/to/auth.json").Я попытался использовать терминал от Rstudio, чтобы сделать то же самое: export GOOGLE_APPLICATION_CREDENTIALS="/full/path/to/auth.json".Я также пытался gcloud auth application-default login, используя терминал из Rstudio.

Но в любом случае я не мог сделать эту работу из Rstudio:

h2o.init()
h2o::h2o.importFile(path = "gs://[gcs_bucket]/[tbl.csv], 
                    destination_frame = "tbl_from_gcs")

H2O выдает ошибку:

Error in h2o.importFolder(path, pattern = "", destination_frame = destination_frame,  : 
   all files failed to import

Если я включаю ведение журнала (h2o::h2o.startLogging("logfile")), он показывает:

GET       http://localhost:54321/3/ImportFiles?path=gs%3A%2F%2F[gcs_bucket]%2F[tbl.csv]&pattern=
postBody: 

curlError:         FALSE
curlErrorMessage:  
httpStatusCode:    200
httpStatusMessage: OK
millis:            182

{"__meta":{"schema_version":3,"schema_name":"ImportFilesV3","schema_type":"ImportFiles"},"_exclude_fields":"","path":"gs://[gcs_bucket]/[tbl.csv]","pattern":"","files":[],"destination_frames":[],"fails":["gs://[gcs_bucket]/[tbl.csv]"],"dels":[]}

(Очевидно, я изменил имя корзины и имя таблицы, но, надеюсь, вы поняли идею.)

Я использую H2O версии 3.26.0.2 в R 3.6.1 и Rstudio 1.2.1578.(Я запускаю сервер Rstudio в Docker на моем локальном сервере с помощью rocker / tidyverse: latest, FYI.)

Если кто-нибудь может помочь мне пройти процедуру аутентификации H2O, чтобы он мог напрямую обращаться к корзинам GCS, я был бы признателенЭто.Я знаю, что мог бы использовать cloudml или googleCloudStorageR в качестве обходного пути, но я хотел бы иметь возможность использовать H2O напрямую, чтобы легче было переключаться с локального кластера H2O на облачный кластер H2O.

...