Рассчитайте точность и отзыв с помощью данных в фрейме данных Spark

#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 ?