Я использую Python для создания логистической регрессии и настроен на mllib для лучшей производительности
Я установил свечи и pyspark.
Мои данные хранятся в массиве numpy, и я легко могу преобразовать их в pandas dataframe.
Я пытался создать искровой фрейм данных для подачи в модель, но создание фрейма данных слишком медленное, и использование обычного Sklearn просто быстрее в целом
Я обнаружил, что используя алгоритм Arrow, используя этот конф
('spark.sql.execution.arrow.enabled', 'true')
может сделать это быстрее, но он все еще слишком медленный, и даже не использует ядра (я проверил свои конфигурации, и у исполнителя и драйвера настроено несколько ядер, но они не используются)
Я пытался использовать RDD вместо фрейма данных с этим кодом
d = [row.tolist() for row in encoded_data]
d = [LabeledPoint(label, row) for label, row in zip(y_train, d)]
rdd = spark.parallelize(d)
lr.fit(rdd)
Но я продолжаю получать эту ошибку
AttributeError: у объекта 'RDD' нет атрибута '_jdf'
Я нашел этот вопрос SO , касающийся аналогичной проблемы, но это не относится к моему делу, Мои данные не приходят из текстового файла, но из массива я могу записать данные в файл а затем прочитать его, но это не имеет смысла в моем случае использования.
Я хотел бы найти лучший способ использования данных из массива - у меня есть два массива - один encoded_data, чем массив функций размера (n * m), и y_train, который является массивом меток (n * 1) , Мне нужно скормить это Логистической регрессии, чтобы улучшить время тренировок.
Данные по какой-то причине плотные, это числовые векторы функций, а не один горячий, поэтому я обратился к Spark, чтобы использовать локальные ядра, которые не используются в обучении Sklearn.
Спасибо.