Невозможно сохранить файл как паркет из-за ошибки «Файлы с более чем одним дочерним элементом не поддерживаются»? - PullRequest
0 голосов
/ 28 мая 2020

Iḿ с использованием python дистрибутива anaconda с установленным pyarrow. Сначала у меня был набор данных из 166 столбцов, во время моей первой итерации по данным мне пришлось много разложить на фиктивные переменные, чтобы он увеличился до 915 столбцов, а на этапе уточнения мне пришлось объединить некоторые данные, поэтому, разрастаясь до 1880 столбцов.

С 915 года мне не удалось сохранить файл как HDF, поэтому я перехожу на паркет, затем на последнем этапе паркет выходит из строя с легендой ArrowNotImplementedError: Fields with more than one child are not supported.

К счастью, я был возможность записать его как CSV, но это занимает почти 3 ГБ места на моем диске. Я хотел бы узнать значение этой ошибки. столбцы настолько просты, что они являются категориями или двоичными (numeri c), вот и все. У меня есть некоторые недостающие значения, но я использую XGBOOST для обучения, поэтому здесь нет проблем.

Кто-нибудь знает, почему вдруг при простом увеличении количества столбцов паркет не может сохранить мой файл? Я без проблем выполнил description (), info () и многие другие операции, я даже обучил модель xgboost без сохранения данных, но на агрегирование всех этих столбцов уходит много времени.

data.to_parquet ("../ data / 5_all_data.parquet") => не работает

ArrowNotImplementedError: Fields with more than one child are not supported.

data.to_hdf ("../ data / 5_all_data.h5 ", key =" data ") => не сработало

NotImplementedError: Cannot store a category dtype in a HDF5 dataset that uses format="fixed". Use format="table".

data.to_csv (" ../ data / 5_all_data.csv ") => действительно сработало

data .info ()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 605847 entries, 630776 to 1049122
Data columns (total 1880 columns):

dtypes: category(118), float64(88), int64(38), uint8(1636)
memory usage: 1.6 GB

любая помощь, пожалуйста

1 Ответ

0 голосов
/ 30 мая 2020

Проблема в том, что сообщение об ошибке здесь не помогает. Настоящая проблема В МОЕМ СЛУЧАЕ состоит в том, что есть 2 столбца с одинаковыми именами. После изменения версий вверх и вниз, изменения типов столбцов и множества других вещей, все, что мне нужно было сделать, это переименовать столбцы, и я могу сохранить в паркет в любой версии пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...