#python #apache-spark #pyspark #scikit-learn #apache-spark-sql
Вопрос:
Я пытаюсь рассчитать точность и вспомнить для многоклассового классификатора.
У меня есть фрейм данных Spark с 2 столбцами, GroundTruth и прогнозируемым классом.
Чтобы рассчитать показатели с помощью API precision_score/recall_score в sklearn, мне нужны столбцы в фрейме данных spark в виде списка python.
То, как я это делаю, таково:
predicted_class_list = df.select(Predicted_Class).rdd.flatMap(lambda x: x).collect()
gt_list = df.select(Ground_Truth).rdd.flatMap(lambda x: x).collect()
precision_score(gt_list, predicted_class_list, average=None)
Требуется вечность, чтобы запустить df.select(Predicted_Class).rdd.flatMap(лямбда x: x).collect()
Иногда требуется 3-4 часа, чтобы он работал только для 100 000 строк.
Есть ли способ оптимизировать код, чтобы он занимал меньше времени?
Комментарии:
1. есть какие-нибудь причины предпочесть склирна
precision_score
писпаркуMulticlassClassificationEvaluator
?