%pyspark
from pyspark.ml import Pipeline
from pyspark.ml.feature import VectorAssembler, StandardScaler
from pyspark.ml.tuning import ParamGridBuilder, TrainValidationSplit
from pyspark.ml.classification import DecisionTreeClassifier
from pyspark.ml.feature import StringIndexer, VectorIndexer
from pyspark.ml.evaluation import MulticlassClassificationEvaluator
# Transformers
combineFeature = VectorAssembler(
inputCols=["arithmetic_mean", "first_max_value", "first_max_hour"],
outputCol="combinedFeatures")
# Transformers
labelIndexer = StringIndexer(inputCol="label", outputCol="indexedLabel")
# Transformers
dt = DecisionTreeClassifier(labelCol="indexedLabel", featuresCol="combinedFeatures", maxBins=32)
# Model selection and hyperparameter tuning
paramGrid = ParamGridBuilder()\
.addGrid(dt.impurity, ['gini','entropy']) \
.addGrid(dt.maxDepth, [5, 10, 20])\
.build()
tvs = TrainValidationSplit(estimator=dt,
estimatorParamMaps=paramGrid,
evaluator=MulticlassClassificationEvaluator(metricName="f1"),
# 80% of the data will be used for training, 20% for validation.
trainRatio=0.8)
# Pipeline
pipeline = Pipeline(stages=[combineFeature,labelIndexer, tvs])
**Model Training**
%pyspark
# Estimator
model = pipeline.fit(trainingSet)
И У меня ОШИБКА Py4JJavaError: Произошла ошибка при вызове o7257.fit. : org. apache .spark.SparkException: задание прервано из-за сбоя этапа: задание 69 на этапе 365.0 не выполнено 4 раза, последний сбой: потерянное задание 69.3 на этапе 365.0 (TID 17083, big-data-2020-master-class -w-0.us-central1-b. c .extended-atrium-265501.internal, исполнитель 3): org. apache .spark.SparkException: не удалось выполнить пользовательскую функцию ($ anonfun $ 9: (строка ) => double) в org. apache .spark. sql .catalyst.expressions.GeneratedClass $ GeneratedIteratorForCodegenStage2.processNext (неизвестный источник) в org. apache .spark. sql .execution.BufferedRowIterator.hasNext ( BufferedRowIterator. java: 43) в орг. apache .spark. sql .execution.WholeStageCodegenExec $$ anonfun $ 12 $$ anon $ 1.hasNext (WholeStageCodegenExe c. scala: 631) в орг. apache .spark. sql .execution.columnar.InMemoryRelation $$ anonfun $ 2 $$ anon $ 1.next (InMemoryRelation. scala: 116) в орг. apache .spark. sql .execution.columnar. InMemoryRelation $$ anonfun $ 2 $$ anon $ 1.next (InMemoryRelation. scala: 108) в org. apache .spark.storage.memory.MemoryStore. putIteratorAsValues (MemoryStore. scala: 217) в org. apache .spark.storage.BlockManager $$ anonfun $ doPutIterator $ 1.apply (BlockManager. scala: 1094) в org. apache .spark.storage. BlockManager $$ anonfun $ doPutIterator $ 1.apply (BlockManager. scala: 1085) в орг. apache .spark.storage.BlockManager.doPut (BlockManager. scala: 1020) в орг. apache .spark. storage.BlockManager.doPutIterator (BlockManager. scala: 1085) в орг. apache .spark.storage.BlockManager.getOrElseUpdate (BlockManager. scala: 811) в орг. apache .spark.rdd.RDD. getOrCompute (RDD. scala: 335) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 286) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. . apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spar k.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd. RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint ( СДР. scala: 324) на орг. apache .spark.rdd.RDD.iterator (СДР. scala: 288) на орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. * 1066) *: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark .rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.schedule r.ResultTask.runTask (ResultTask. scala: 87) в орг. apache .spark.scheduler.Task.run (Task. scala: 109) в орг. apache .spark.executor.Executor $ TaskRunner.run (Executor. scala: 345) в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPo). java: 624) в java .lang.Thread.run (Thread. java: 748) Причина: org. apache .spark.SparkException: Невидимая метка: 250. Чтобы обработать невидимые метки, установите параметр handleInvalid, чтобы сохранить. в орг. apache .spark.ml.feature.StringIndexerModel $$ anonfun $ 9.apply (StringIndexer. scala: 260) в орг. apache .spark.ml.feature.StringIndexerModel $$ anonfun $ 9.apply ( StringIndexer. scala: 246) ... еще 40
Отслеживание стека драйверов: в орг. apache .spark.scheduler.DAGScheduler.org $ apache $ spark $ scheduler $ DAGScheduler $$ failJobAndIndependentStages (DAGScheduler. scala: 1661) в орг. apache .spark.scheduler .DAGScheduler $$ anonfun $ abortStage $ 1.apply (DAGScheduler. scala: 1649) в org. apache .spark.scheduler.DAGScheduler $$ anonfun $ abortStage $ 1.apply (DAGScheduler. scala: 1648) в scala .collection.mutable.ResizableArray $ class.foreach (ResizableArray. scala: 59) в scala .collection.mutable.ArrayBuffer.foreach (ArrayBuffer. scala: 48) в орг. apache .spark .scheduler.DAGScheduler.abortStage (DAGScheduler. scala: 1648) в орг. apache .spark.scheduler.DAGScheduler $$ anonfun $ handleTaskSetFailed $ 1.apply (DAGScheduler. scala: 831) в орг. .spark.scheduler.DAGScheduler $$ anonfun $ handleTaskSetFailed $ 1.apply (DAGScheduler. scala: 831) в scala .Option.foreach (Опция. scala: 257) в орг. apache .spark.scheduler .DAGScheduler.handleTaskSetFailed (DAGScheduler. scala: 831) в орг. apache .spark.scheduler.DAGSchedulerEventProcessL oop .doO nReceive (DAGScheduler. scala: 1882) в org. apache .spark.scheduler.DAGSchedulerEventProcessL oop .onReceive (DAGScheduler. scala: 1831) в org. apache .spark.scheduler.DAGScheduler27vent Process * .onReceive (DAGScheduler. scala: 1820) в орг. apache .spark.util.EventLoop $$ anon $ 1.run (EventL oop. scala: 48) в орг. apache .spark .scheduler.DAGScheduler.runJob (DAGScheduler. scala: 642) в орг. apache .spark.SparkContext.runJob (SparkContext. scala: 2034) в орг. apache .spark.SparkContext.runJob (Spark . scala: 2055) в орг. apache .spark.SparkContext.runJob (SparkContext. scala: 2074) в орг. apache .spark.SparkContext.runJob (SparkContext. scala: 2099) в org. apache .spark.rdd.RDD.count (RDD. scala: 1168) в org. apache .spark.ml.tree.impl.DecisionTreeMetadata $ .buildMetadata (DecisionTreeMetadata. scala: 118) в орг. apache .spark.ml.tree.impl.RandomForest $ .run (RandomForest. scala: 105) в орг. apache .spark.ml.classification.DecisionTreeClassifier.train (DecisionTreeClassifier. scala : 116) в орг. apache .spark.ml.class ification.DecisionTreeClassifier.train (DecisionTreeClassifier. scala: 45) в орг. apache .spark.ml.Predictor.fit (Predictor. scala: 118) в орг. apache .spark.ml.Predictor. fit (Predictor. scala: 82) в sun.reflect.GeneratedMethodAccessor105.invoke (неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) в java .lang.ref. вызвать (Method. java: 498) в py4j.reflection.MethodInvoker.invoke (MethodInvoker. java: 244) в py4j.reflection.ReflectionEngine.invoke (ReflectionEngine. java: 357) в py4j.Gateway.invoke (Шлюз. java: 282) на py4j.commands.AbstractCommand.invokeMethod (AbstractCommand. java: 132) на py4j.commands.CallCommand.execute (CallCommand. java: 79) на py4j.GatewayConnection.run ( GatewayConnection. java: 238) в java .lang.Thread.run (Thread. java: 748) Причина: org. apache .spark.SparkException: Не удалось выполнить пользовательскую функцию ($ anonfun $ 9 : (string) => double) в org. apache .spark. sql .catalyst.expressions.GeneratedClass $ GeneratedIteratorForCodegenStage2.processNext (Неизвестный источник) в org. apache .spark. sql .execution.BufferedRowIterator.hasNext (BufferedRowIterator. java: 43) в org. apache .spark. sql .execution. WholeStageCodegenExec $$ anonfun $ 12 $$ anon $ 1.hasNext (WholeStageCodegenExe c. scala: 631) в org. apache .spark. sql .execution.columnar.InMemoryRelation $$ anonfun $ 2 $$ anon $ 1. далее (InMemoryRelation. scala: 116) в орг. apache .spark. sql .execution.columnar.InMemoryRelation $$ anonfun $ 2 $$ anon $ 1.next (InMemoryRelation. scala: 108) в орг. apache .spark.storage.memory.MemoryStore.putIteratorAsValues (MemoryStore. scala: 217) в org. apache .spark.storage.BlockManager $$ anonfun $ doPutIterator $ 1.apply (BlockManager. scala: 1094 ) в орг. apache .spark.storage.BlockManager $$ anonfun $ doPutIterator $ 1.apply (BlockManager. scala: 1085) в орг. apache. spark.storage.BlockManager.doPut (BlockManager. scala: 1020) в орг. apache .spark.storage.BlockManager.doPutIterator (BlockManager. scala: 1085) в орг. apache .spark.storage. BlockManager.getOrElseUpdate (BlockManager. scala: 811) в орг. apache .spark.rdd.RDD.getOrCompute (СДР. scala: 335) в орг. apache .spark.rdd.RDD.iterator ( СДР. scala: 286) на орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) на орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (СДР. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark .rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 4 9) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. . apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd .RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD. scala: 49) в орг. apache .spark.rdd.RDD.computeOrReadCheckpoint (RDD. scala: 324) в орг. apache .spark.rdd.RDD.iterator (RDD. scala: 288) в орг. apache .spark.scheduler.ResultTask.runTask (ResultTask. scala: 87) в орг. apache .spark.scheduler.Task.run (Задание. scala: 109 ) в организации. apache .spark.executor.Executor $ TaskRunner.run (Исполнитель. scala: 345) в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 624) ... еще 1 причина: org. apache .spark.SparkException: невидимая метка: 250. Для обработки невидимые метки, установите Param handleInvalid для сохранения. в орг. apache .spark.ml.feature.StringIndexerModel $$ anonfun $ 9.apply (StringIndexer. scala: 260) в орг. apache .spark.ml.feature.StringIndexerModel $$ anonfun $ 9.apply ( StringIndexer. scala: 246) ... еще 40
(, Py4JJavaError (произошла ошибка при вызове o7257.fit. \ N ', идентификатор JavaObject = o7342),)