Ошибка при получении задачи не сериализуется при выполнении этого кода
def replace (data : String , Outlier: String):String = {
var reco: String = Outlier
if(detailsList.contains(data)) {
reco = Outlier.replaceFirst("'reco':''", "'reco':'" + data + "'")
}
reco
}
val replace_udf = udf(replace _)
recommendedFinal = accuracyOutliersFinal.withColumn("Outliers", replace_udf(col(columnName),col("Outliers")))
logger.warn(ruleName + "-" + jobId + " Recommendation for Column: " + columnName + recommendedFinal.select(columnName, "Outliers").show(20, truncate = false))
Исключение в потоке "главная" организация. apache .spark.SparkException: Задача не сериализуема в организации. apache .spark.util.ClosureCleaner $ .ensureSerializable (ClosureCleaner. scala: 345) в org. apache .spark.util.ClosureCleaner $ .org $ apache $ spark $ util $ ClosureCleaner $$ clean (ClosureCleaner. scala: 335) в орг. apache .spark.util.ClosureCleaner $ .clean (ClosureCleaner. scala: 159) в орг. apache .spark.SparkContext.clean (SparkContext. scala: 2299) в орг. apache .spark.rdd.RDD $$ anonfun $ mapPartitionsWithIndex $ 1.apply (СДР. scala: 844) в орг. apache .spark.rdd.RDD $$ anonfun $ mapPartitionsWithIndex $ 1.apply ( СДР. scala: 843) на орг. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 151) на орг. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 112) в орг. apache .spark.rdd.RDD.withScope (RDD. scala: 363) в орг. apache .spark.rdd.RDD.mapPartitionsWithIndex (RDD. scala: 843) в орг. apache .spark. * 10 30 * .execution.WholeStageCodegenExe c .doExecute (WholeStageCodegenExe c. scala: 608) в org. apache .spark. sql .execution.SparkPlan $$ anonfun $ execute $ 1.apply (SparkPlan. scala: 131) в орг. apache .spark. sql .execution.SparkPlan $$ anonfun $ execute $ 1.apply (SparkPlan. scala: 127) в орг. apache .spark. sql .execution.SparkPlan $$ anonfun $ executeQuery $ 1.apply (SparkPlan. scala: 155) в org. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 151) в org. apache .spark. sql .execution.SparkPlan.executeQuery (SparkPlan. scala: 152) в org. apache .spark. sql .execution.SparkPlan.execute (SparkPlan. scala: 127) в орг. apache .spark. sql .execution.SparkPlan.getByteArrayRdd (SparkPlan. scala: 247) в орг. apache .spark. sql .execution.SparkPlan.executeTake (SparkPlan. scala: 337) в орг. apache .spark. sql .execution.CollectLimitExe c .executeCollect (limit. scala: 38) в орг. apache .spark. sql .Dataset.org $ apache $ spark $ sql $ Набор данных $$ collectFromPlan (Набор данных. scala: 3272) в орг. apache .spark. * 1 065 * .Dataset $$ anonfun $ head $ 1.apply (Набор данных. scala: 2484) в org. apache .spark. sql .Dataset $$ anonfun $ head $ 1.apply (Набор данных. scala: 2484) at org. apache .spark. sql .Dataset $$ anonfun $ 52.apply (Набор данных. scala: 3253) в org. apache .spark. sql .execution.SQLExecution $ .withNewExecutionId (SQLExecution. scala: 77) в орг. apache .spark. sql .Dataset.withAction (Набор данных. scala: 3252) в орг. apache .spark. sql .Dataset.head (Набор данных. scala: 2484) в орг. apache .spark. sql .Dataset.take (Набор данных. scala: 2698) в орг. apache .spark. sql .Dataset.showString (Набор данных. scala: 254) в орг. apache .spark. sql .Dataset.show (Набор данных. scala: 725) в com.accenture.dis.recommendation.accuracyReco $$ anonfun $ precisionByAttribute $ 1 .apply (precisionReco. scala: 84) в com.accenture.dis.recommendation.accuracyReco $$ anonfun $ precisionByAttribute $ 1.apply (precisionReco. scala: 30) в scala .collection.IndexedSeqOptimized $ class.foreach (IndexedSeqOptimized. scala: 33) в scala .collection.mutable.ArrayOps $ ofRef.foreach (ArrayOps. scala: 186) в c om.accenture.dis.recommendation.accuracyReco.accuracyByAttribute (precisionReco. scala: 30) в com.accenture.dis.veracity.accuracy.computeAccuracy (точность. scala: 473) в com.accenture.dis.controller. precisionController $ .main (precisionController. scala: 128) в com.accenture.dis.controller.accuracyController.main (precisionController. scala) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reImplativeN в sun.reImplativeN. .invoke (NativeMethodAccessorImpl. java: 62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) в java .lang.reflect.Method.invoke (Метод.) 1108 в at4 орг. apache .spark.deploy.JavaMainApplication.start (SparkApplication. scala: 52) в орг. apache .spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit. scala: 906) в орг. apache .spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit. scala: 197) в орг. apache .spark.deploy.SparkSubmit $ .submit (SparkSubmit. scala: 227) в орг. apache .spark.deploy.SparkSubmit $ .main (SparkSubmit. scala: 136) в орг. apache .spark.deploy.SparkSubmit.main (SparkSubmit. scala) Вызвано by: java .io.NotSerializableException: com.accenture.dis.recommendation.accuracyReco Стек сериализации: - объект не сериализуем (класс: com.accenture.dis.recommendation.accuracyReco, значение: com.accenture.dis.recommendation. accuracyReco@18a9e8db) - поле (класс: com.accenture.dis.recommendation.accuracyReco $$ anonfun $ precisionByAttribute $ 1, имя: $ external, тип: класс com.accenture.dis.recommendation.accuracyReco) - объект (класс com.accenture. dis.recommendation.accuracyReco $$ anonfun $ precisionByAttribute $ 1,) - поле (класс: com.accenture.d is.recommendation.accuracyReco $$ anonfun $ precisionByAttribute $ 1 $$ anonfun $ 1, имя: $ external, тип: класс com.accenture.dis.recommendation.accuracyReco $$ anonfun $ precisionByAttribute $ 1) - объект (класс com.accenture.is). Рекомендации.accuracyReco $$ anonfun $ precisionByAttribute $ 1 $$ anonfun $ 1,) - элемент массива (индекс: 20) - массив (класс [L java .lang.Object ;, размер 21) - поле (класс: org. apache .spark. sql .execution.WholeStageCodegenExec $$ anonfun $ 10, имя: ссылки $ 1, тип: class [L java .lang.Object;) - объект (класс org. apache .spark. sql .execution.WholeStageCodegenExec $$ anonfun $ 10,) в орг. apache .spark.serializer.SerializationDebugger $ .improveException (SerializationDebugger. scala: 40) в орг. JavaSerializer. scala: 46) в орг. apache .spark.serializer.JavaSerializerInstance.serialize (JavaSerializer. scala: 100) в орг. apache .spark.util.ClosureCleaner $ .ensureSerializable (ClosureCleaner. scala: 342) ... еще 47