Я работаю с огромным H2OFrame
(~ 150 ГБ, ~ 200 миллионов строк), которым мне нужно немного манипулировать. Чтобы быть более конкретным: я должен использовать столбец ip
фрейма, чтобы найти названия местоположения/города для каждого IP-адреса и добавить эту информацию в каждую из строк фрейма.
Преобразование фрейма в простой объект Python и манипулирование им локально не вариант из-за огромного размера фрейма. Итак, я надеялся, что смогу использовать свой кластер H2O для создания нового H2OFrame city_names
, используя столбец ip
исходного фрейма, а затем объединить оба фрейма.
Мой вопрос похож на заданный вопрос здесь , и из ответа на этот вопрос я понял, что в H2O нет возможности выполнять сложные манипуляции с каждой из строк фрейма. Это действительно так? В конце концов, функция apply
H2OFrame
принимает только лямбду без пользовательских методов.
Один из вариантов, о котором я подумал, заключался в том, чтобы использовать Spark/Sparkling Water
для такого рода манипуляций с данными, а затем преобразовать искровой фрейм в H2OFrame для выполнения операций машинного обучения. Однако, если возможно, я бы предпочел избежать этого и использовать только H2O, не в последнюю очередь из-за накладных расходов, которые создает такое преобразование.
Так что, я думаю, все сводится к следующему: есть ли способ сделать такого рода манипуляции, используя только H2O? И если нет, есть ли другой вариант сделать это без изменения архитектуры моего кластера (т.е. без необходимости превращать мой кластер H2O в кластер газированной воды?)