Я бы хотел импортировать 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.