Apache SparkMultilayerPerceptronClassifierがArrayIndexOutOfBoundsExceptionで失敗する

青空

私はこのコードを使用して予測しようとしています:

import org.apache.spark.sql.functions.col
import org.apache.spark.Logging
import org.apache.spark.graphx._
import org.apache.spark.{ SparkConf, SparkContext }
import org.apache.spark.SparkContext._
import org.apache.spark.sql.SQLContext._
import org.apache.log4j.Logger
import org.apache.log4j.Level
import org.apache.spark.sql.functions.col
import org.apache.spark.ml.feature.VectorAssembler

object NN extends App {

Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)

val sc = new SparkContext(new SparkConf().setMaster("local[2]")
.setAppName("cs"))

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._

val df = sc.parallelize(Seq(

("3", "1", "1"),

("2", "1", "1"),

("2", "3", "3"),

("3", "3", "3"),

("0", "1", "0")))

.toDF("label", "feature1", "feature2")

val numeric = df
.select(df.columns.map(c => col(c).cast("double").alias(c)): _*)

val assembler = new VectorAssembler()
.setInputCols(Array("feature1", "feature2"))
.setOutputCol("features")

val data = assembler.transform(numeric)

import org.apache.spark.ml.classification.MultilayerPerceptronClassifier

val layers = Array[Int](2, 3, 5, 4) // Note 2 neurons in the input layer
val trainer = new MultilayerPerceptronClassifier()
.setLayers(layers)
.setBlockSize(128)
.setSeed(1234L)
.setMaxIter(100)

val model = trainer.fit(data)
model.transform(data).show


}

データフレーム(df)の場合、("4", "1", "1")代わりに使用すると("3", "1", "1")エラーが発生します:

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Set current project to spark-applications1458853926-master (in build file:/C:/Users/Desktop/spark-applications1458853926-master/)
[info] Compiling 1 Scala source to C:\Users\Desktop\spark-applications1458853926-master\target\scala-2.11\classes...
[info] Running NN
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/04/06 12:42:11 INFO Remoting: Starting remoting
16/04/06 12:42:11 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://[email protected]:64056]
[error] (run-main-0) org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost): java.lang.ArrayIndexOutOfBoundsException: 4
[error]         at org.apache.spark.ml.classification.LabelConverter$.encodeLabeledPoint(MultilayerPerceptronClassifier.scala:85)
[error]         at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$2.apply(MultilayerPerceptronClassifier.scala:165)
[error]         at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$2.apply(MultilayerPerceptronClassifier.scala:165)
[error]         at scala.collection.Iterator$$anon$11.next(Iterator.scala:370)
[error]         at scala.collection.Iterator$GroupedIterator.takeDestructively(Iterator.scala:934)
[error]         at scala.collection.Iterator$GroupedIterator.go(Iterator.scala:949)
[error]         at scala.collection.Iterator$GroupedIterator.fill(Iterator.scala:986)
[error]         at scala.collection.Iterator$GroupedIterator.hasNext(Iterator.scala:990)
[error]         at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:369)
[error]         at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595)
[error]         at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1143)
[error]         at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1143)
[error]         at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
[error]         at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
[error]         at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
[error]         at org.apache.spark.scheduler.Task.run(Task.scala:89)
[error]         at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[error]         at java.lang.Thread.run(Thread.java:745)
[error]
[error] Driver stacktrace:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost): java.lang.ArrayIndexOutOfBoundsException: 4
        at org.apache.spark.ml.classification.LabelConverter$.encodeLabeledPoint(MultilayerPerceptronClassifier.scala:85)
        at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$2.apply(MultilayerPerceptronClassifier.scala:165)
        at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$2.apply(MultilayerPerceptronClassifier.scala:165)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:370)
        at scala.collection.Iterator$GroupedIterator.takeDestructively(Iterator.scala:934)
        at scala.collection.Iterator$GroupedIterator.go(Iterator.scala:949)
        at scala.collection.Iterator$GroupedIterator.fill(Iterator.scala:986)
        at scala.collection.Iterator$GroupedIterator.hasNext(Iterator.scala:990)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:369)
        at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595)
        at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1143)
        at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1143)
        at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
        at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
        at org.apache.spark.scheduler.Task.run(Task.scala:89)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Driver stacktrace:
        at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1431)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1419)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1418)
        at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
        at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
        at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1418)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:799)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:799)
        at scala.Option.foreach(Option.scala:257)
        at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:799)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1640)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1599)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1588)
        at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
        at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:620)
        at org.apache.spark.SparkContext.runJob(SparkContext.scala:1832)
        at org.apache.spark.SparkContext.runJob(SparkContext.scala:1845)
        at org.apache.spark.SparkContext.runJob(SparkContext.scala:1858)
        at org.apache.spark.SparkContext.runJob(SparkContext.scala:1929)
        at org.apache.spark.rdd.RDD.count(RDD.scala:1143)
        at org.apache.spark.mllib.optimization.LBFGS$.runLBFGS(LBFGS.scala:170)
        at org.apache.spark.mllib.optimization.LBFGS.optimize(LBFGS.scala:117)
        at org.apache.spark.ml.ann.FeedForwardTrainer.train(Layer.scala:878)
        at org.apache.spark.ml.classification.MultilayerPerceptronClassifier.train(MultilayerPerceptronClassifier.scala:170)
        at org.apache.spark.ml.classification.MultilayerPerceptronClassifier.train(MultilayerPerceptronClassifier.scala:110)
        at org.apache.spark.ml.Predictor.fit(Predictor.scala:90)
        at NN$.delayedEndpoint$NN$1(NN.scala:56)
        at NN$delayedInit$body.apply(NN.scala:15)
        at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
        at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.collection.immutable.List.foreach(List.scala:381)
        at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
        at scala.App$class.main(App.scala:76)
        at NN$.main(NN.scala:15)
        at NN.main(NN.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4
        at org.apache.spark.ml.classification.LabelConverter$.encodeLabeledPoint(MultilayerPerceptronClassifier.scala:85)
        at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$2.apply(MultilayerPerceptronClassifier.scala:165)
        at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$2.apply(MultilayerPerceptronClassifier.scala:165)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:370)
        at scala.collection.Iterator$GroupedIterator.takeDestructively(Iterator.scala:934)
        at scala.collection.Iterator$GroupedIterator.go(Iterator.scala:949)
        at scala.collection.Iterator$GroupedIterator.fill(Iterator.scala:986)
        at scala.collection.Iterator$GroupedIterator.hasNext(Iterator.scala:990)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:369)
        at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595)
        at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1143)
        at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1143)
        at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
        at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
        at org.apache.spark.scheduler.Task.run(Task.scala:89)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
[trace] Stack trace suppressed: run last compile:run for the full output.
java.lang.RuntimeException: Nonzero exit code: 1
        at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) Nonzero exit code: 1
[error] Total time: 19 s, completed 06-Apr-2016 12:42:20

ArrayIndexOutOfBoundsExceptionを受け取るのはなぜですか、ラベルを正しく設定していませんか?ラベルは単なるラベルであるため、値をとることはできませんか?この例では、0〜3の範囲にある必要があるようです。

マシューグレイブス

出力レイヤーはワンホットエンコーディングを使用します; つまり、「3」のラベルは(0,0,0,1)に変換されます。ここで、「3番目の」要素は1で、残りは0です。4つの出力ノードと4のラベルがある場合、LabelConverter関数(ソースはここに表示されます)は失敗します。labelCountは4、labeledPoint.label.toIntは4なので、エラーになります。)

val output = Array.fill(labelCount)(0.0)
output(labeledPoint.label.toInt) = 1.0
(labeledPoint.features, Vectors.dense(output))

したがって、この行を変更します。

val layers = Array[Int](2, 3, 5, 4) // Note 2 neurons in the input layer

これに:

val layers = Array[Int](2, 3, 5, 5) // Note 2 neurons in the input layer and 5 neurons in the output layer

そして私はそれがうまくいくことを期待しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Apache + socketIOが失敗する

分類Dev

org.apache.kafka.common.serialization.StringDeserializerのSparkがNoClassDefFoundErrorで失敗する

分類Dev

apache airflowinitdbがmysqlのkubernetes_resource_checkingpointで失敗する

分類Dev

WebSocketの接続がApacheとRatchetで失敗する

分類Dev

AppArmorとModSecurityでApache2が失敗する

分類Dev

ElasticBeanstalkでApache構成構文が失敗する

分類Dev

Apache Phoenix IndexToolがjava.lang.ClassNotFoundExceptionで失敗する:org.apache.tephra.TransactionSystemClient

分類Dev

エポック日付の変換がapache-nifiで失敗する

分類Dev

Apacheフェニックスの同時クエリが例外で失敗する

分類Dev

Apache POI getRow()がnullを返し、.createRowが失敗する

分類Dev

Apache lang DateUtilを使用した日付形式が失敗する

分類Dev

java.lang.ClassNotFoundExceptionが原因でAirflowSparkSubmitOperatorが失敗する:クラスorg.apache.spark.examples.SparkPi

分類Dev

Apache Nutch warcとcommoncrawldumpがクロール後に失敗するのはなぜですか?

分類Dev

Apache Spark:com.ning.compress.lzf.impl.UnsafeChunkDecoder.copyOverlappingLongでjava.lang.ArrayIndexOutOfBoundsExceptionが発生してタスクが失敗しました

分類Dev

ScalaでのApacheビームテストパイプラインの初期化が失敗する

分類Dev

SSLサブドメイン構成のApache2でリダイレクトが失敗する

分類Dev

PHP mail()がメールの送信に失敗する| Postfix設定| Apache 2 | Ubuntu 16.04

分類Dev

Apache SparkMultilayerPerceptronClassifier設定機能

分類Dev

JaCoCoレポートがJenkinsで失敗する:java.lang.ArrayIndexOutOfBoundsException

分類Dev

Apache systemctl starthttpdが失敗しました

分類Dev

DebianでApache'-kstart 'が失敗しました

分類Dev

datanodeがorg.apache.hadoop.util.DiskChecker $ DiskErrorExceptionで失敗しました

分類Dev

Apacheで実行されているDjangoビューがOSErrorで失敗する:許可が拒否されました

分類Dev

Spark with Playが「NoClassDefFoundError:クラスorg.apache.spark.SparkConf $を初期化できませんでした」で失敗するのはなぜですか?

分類Dev

IntelliJ IDEAで「NoClassDefFoundError:org / apache / spark / mllib / regression / LabeledPoint」でSparkアプリケーションの実行が失敗するのはなぜですか?

分類Dev

Sparkが「valuerdfはorg.apache.spark.sql.SparkSessionのメンバーではありません」で失敗するのはなぜですか?

分類Dev

Apacheがリロードに失敗しました...詳細を調べることができるログはありますか?

分類Dev

Apache Tomcat 9の起動に失敗する(Eclipse)

分類Dev

pysparkが「インスタンス化中のエラー 'org.apache.spark.sql.hive.HiveSessionStateBuilder'」で失敗するのはなぜですか?

Related 関連記事

  1. 1

    Apache + socketIOが失敗する

  2. 2

    org.apache.kafka.common.serialization.StringDeserializerのSparkがNoClassDefFoundErrorで失敗する

  3. 3

    apache airflowinitdbがmysqlのkubernetes_resource_checkingpointで失敗する

  4. 4

    WebSocketの接続がApacheとRatchetで失敗する

  5. 5

    AppArmorとModSecurityでApache2が失敗する

  6. 6

    ElasticBeanstalkでApache構成構文が失敗する

  7. 7

    Apache Phoenix IndexToolがjava.lang.ClassNotFoundExceptionで失敗する:org.apache.tephra.TransactionSystemClient

  8. 8

    エポック日付の変換がapache-nifiで失敗する

  9. 9

    Apacheフェニックスの同時クエリが例外で失敗する

  10. 10

    Apache POI getRow()がnullを返し、.createRowが失敗する

  11. 11

    Apache lang DateUtilを使用した日付形式が失敗する

  12. 12

    java.lang.ClassNotFoundExceptionが原因でAirflowSparkSubmitOperatorが失敗する:クラスorg.apache.spark.examples.SparkPi

  13. 13

    Apache Nutch warcとcommoncrawldumpがクロール後に失敗するのはなぜですか?

  14. 14

    Apache Spark:com.ning.compress.lzf.impl.UnsafeChunkDecoder.copyOverlappingLongでjava.lang.ArrayIndexOutOfBoundsExceptionが発生してタスクが失敗しました

  15. 15

    ScalaでのApacheビームテストパイプラインの初期化が失敗する

  16. 16

    SSLサブドメイン構成のApache2でリダイレクトが失敗する

  17. 17

    PHP mail()がメールの送信に失敗する| Postfix設定| Apache 2 | Ubuntu 16.04

  18. 18

    Apache SparkMultilayerPerceptronClassifier設定機能

  19. 19

    JaCoCoレポートがJenkinsで失敗する:java.lang.ArrayIndexOutOfBoundsException

  20. 20

    Apache systemctl starthttpdが失敗しました

  21. 21

    DebianでApache'-kstart 'が失敗しました

  22. 22

    datanodeがorg.apache.hadoop.util.DiskChecker $ DiskErrorExceptionで失敗しました

  23. 23

    Apacheで実行されているDjangoビューがOSErrorで失敗する:許可が拒否されました

  24. 24

    Spark with Playが「NoClassDefFoundError:クラスorg.apache.spark.SparkConf $を初期化できませんでした」で失敗するのはなぜですか?

  25. 25

    IntelliJ IDEAで「NoClassDefFoundError:org / apache / spark / mllib / regression / LabeledPoint」でSparkアプリケーションの実行が失敗するのはなぜですか?

  26. 26

    Sparkが「valuerdfはorg.apache.spark.sql.SparkSessionのメンバーではありません」で失敗するのはなぜですか?

  27. 27

    Apacheがリロードに失敗しました...詳細を調べることができるログはありますか?

  28. 28

    Apache Tomcat 9の起動に失敗する(Eclipse)

  29. 29

    pysparkが「インスタンス化中のエラー 'org.apache.spark.sql.hive.HiveSessionStateBuilder'」で失敗するのはなぜですか?

ホットタグ

アーカイブ