Есть ли эффективный способ конвертировать Pandas DataFrame в H2O Frame? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть фрейм данных Pandas, и мне нужно преобразовать его в фрейм H2O.Я использую следующий код -

Код:

# Convert pandas dataframe to H2O frame
start_time = time.time()
input_data_matrix = h2o.H2OFrame(input_df)
logger.debug("3. Time taken to convert H2O Frame- " + str(time.time() - start_time))

Выход:

2019-02-05 04: 38: 55 238 logger DEBUG 3. Время, необходимое для преобразования кадра H2O - 9320.119945764542

Размер кадра данных (т. Е. input_df) 183K x 435 без нулевых или NaN-значений.

Это занимает около 2 часов.Есть ли лучший способ выполнить эту операцию?

1 Ответ

0 голосов
/ 07 февраля 2019
  1. Сохраните фрейм данных Pandas в CSV-файл.(Пропустите этот шаг, если вы сначала загрузили его из CSV-файла и, конечно же, не сделали никаких данных на нем.)

  2. Поместите этот CSV-файл куда-нибудь вH2O сервер может видеть это.(Если вы используете клиент и сервер на одном компьютере, это уже так.)

  3. Используйте h2o.import_file() (вместо h2o.upload_file() или h2o.H2OFrame())

h2o.import_file() - это самый быстрый способ получить данные в H2O, но файл должен быть виден на сервере.При работе с удаленным кластером это может означать его загрузку в файловую систему этих серверов или размещение на веб-сервере, в кластере HDFS, на AWS S3 и т. Д. И т. Д.

(причина h2o.upload_file() медленнее в том, что он выполняет HTTP POST данных от клиента к серверу, а h2o.H2OFrame() медленнее, потому что он экспортирует ваши данные pandas в временный CSV-файл, затем использует h2o.upload_file(), а затем удаляет временный файлпосле этого.)

...