Проблемы чтения фрейма данных PySpark в Pandas с колонками VectorUDT - PullRequest
0 голосов
/ 09 июня 2019

У меня есть таблица PySpark, где многие столбцы имеют тип VectorUDT. Эти столбцы были созданы с помощью функции OneHotEstimator в PySpark.

Я могу записать эту таблицу в файлы Parquet, но когда я пытаюсь прочитать таблицу обратно в Pandas, используя PyArrow, я получаю следующее исключение:

ArrowNotImplementedError: Currently only nesting with Lists is supported.

Есть ли способ обойти это? Я бы предпочел не разбивать каждый столбец VectorUDT на отдельные столбцы.

1 Ответ

0 голосов
/ 10 июня 2019

Выходные столбцы метода OneHotEncoderModel.transform () кодируются как SparseVector. Вы должны были бы вручную создать отдельные векторы, чтобы вернуть их в Панды. Отправьте исходные столбцы (входные данные в кодировщик Spark) в Pandas и перекодируйте их там, если они необходимы.

Оценщикам Spark (таким как Логистическая регрессия) потребуется версия в кодировке Sparse Vector, и вы действительно не хотите расширять их на стороне Spark, если ваши данные большие. Возможно, то, что вам нужно сделать на стороне Панд, достаточно мало, чтобы сделать их расширение терпимым?

...