H2O est une architecture client/serveur. (Voir http://docs.h2o.ai/h2o/latest-stable/h2o-docs/architecture.html )
Ce que vous avez montré est donc un moyen très inefficace de spécifier un cadre H2O dans la mémoire H2O. Chaque écriture va se transformer en un appel réseau. Ce n'est certainement pas ce que vous voulez.
Dans votre exemple, comme les données ne sont pas volumineuses, il serait raisonnable de procéder à l'affectation initiale à un cadre de données local (ou à une table de données), puis d'utiliser la méthode push de as.h2o().
h2o_frame = as.h2o(matrix1)
head(h2o_frame)
Cela pousse un cadre de données R du client R vers un cadre H2O dans la mémoire du serveur H2O. (Et vous pouvez faire as.data.table() pour faire l'inverse).
data.table Tips :
Pour data.table, préférez la syntaxe := en place. Cela évite les copies. Ainsi, par exemple
matrix1[i, 3 := 42]
Conseils H2O :
Le moyen le plus rapide de lire des données dans H2O est de les ingérer à l'aide de la méthode pull dans h2o.importFile(). Cette méthode est parallèle et distribuée.
L'astuce as.h2o() présentée ci-dessus fonctionne bien pour les petits ensembles de données qui tiennent facilement dans la mémoire d'un hôte.
Si vous voulez observer les messages du réseau entre R et H2O, appelez h2o.startLogging().