Программа Spark , не может генерировать RDD [Vector]? - PullRequest
0 голосов
/ 20 марта 2019

Я использую spark-shell для отправки этой программы , "./spark-shell --master spark://192.168.41.143:7077".

Я хочу сгенерировать RDD [Vector], но моя программа не может сгенерировать RDD [Vector]? когда я запускаю программу, она показывает ошибку

java.lang.NullPointerException

.

Я думаю, что эта ошибка может быть вызвана SC.

  import org.apache.spark.{SparkConf, SparkContext}
    import org.apache.spark.sql.SparkSession
    import org.apache.spark.mllib.linalg.Vectors
    import org.apache.spark.rdd.RDD
    import org.apache.spark.mllib.stat.{MultivariateStatisticalSummary, Statistics}

    object computeSxbph_3_30 {
      def main(args: Array[String]): Unit = {
      val conf = new SparkConf().setAppName("computeSxbph_3_30").setMaster("spark://192.168.41.143:7077")
      val sc = new SparkContext(conf)
      val input = sc.parallelize(List(
      List("001_2019_3_20", 1, 3, 5),
      List("001_2019_3_20", 4, 10, 15),
      List("001_2019_3_20", 41, 1203, 35),
      List("002_2019_3_20", 32, 4, 9),
      List("002_2019_3_20", 12, 24, 89),
      List("002_2019_3_20", 2, 5, 19),
      List("003_2019_3_20", 1, 1, 94),
      List("003_2019_3_20", 10, 91, 4),
      List("003_2019_3_20", 14, 21, 43)
    ), 3)
      val maped: RDD[(String, (Double, Double, Double))] = input.map {
      x => {
        val key = x(0).toString;
        val v1 = x(1).toString.toInt;
        val v2 = x(2).toString.toInt;
        val v3 = x(3).toString.toInt;
        (key, (v1, v2, v3))
      }
    }
     val topItem_set = maped.map(ele => (ele._1, (ele._2._1, ele._2._2, ele._2._3))).groupByKey()
    topItem_set.map(a=>{
      val v1 = Vectors.dense(a._2.toList(0)._1.toDouble,a._2.toList(0)._2.toDouble,a._2.toList(0)._3)
      val v2 = Vectors.dense(a._2.toList(1)._1.toDouble,a._2.toList(1)._2.toDouble,a._2.toList(1)._3)
      val v3 = Vectors.dense(a._2.toList(2)._1.toDouble,a._2.toList(2)._2.toDouble,a._2.toList(2)._3)
      val rows = sc.parallelize(Seq(v1,v2,v3))
      val tmp = Seq(v1,v2,v3).toArray
      tmp.foreach(println(_))
      println("____分割线______")

     val summary: MultivariateStatisticalSummary = Statistics.colStats(rows)
      summary.max
    }).collect()

     }

    }

но эта программа не работает нормально.

19/03/20 23:47:25 ОШИБКА Исполнитель: Исключение в задании 1.0 на этапе 11.0 (TID 19) java.lang.NullPointerException на $ line34. $ читать $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ anonfun $ 1.apply (: 39) на $ line34. $ читать $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ anonfun $ 1.apply (: 35) на scala.collection.Iterator $$ anon $ 11.next (Iterator.scala: 409) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.generic.Growable $ class. $ plus $ plus $ eq (Growable.scala: 59) at scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 104) в scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 48) в scala.collection.TraversableOnce $ class.to (TraversableOnce.scala: 310) на scala.collection.AbstractIterator.to (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toBuffer (TraversableOnce.scala: 302) в scala.collection.AbstractIterator.toBuffer (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toArray (TraversableOnce.scala: 289) в scala.collection.AbstractIterator.toArray (Iterator.scala: 1336) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062) в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 108) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 335) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) на java.lang.Thread.run (Thread.java:748) 19.03.20 23:47:25 ОШИБКА Исполнитель: Исключение в задании 2.0 на этапе 11.0 (TID 20) java.lang.NullPointerException на $ line34. $ читать $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ anonfun $ 1.apply (: 39) на $ line34. $ читать $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ anonfun $ 1.apply (: 35) на scala.collection.Iterator $$ anon $ 11.next (Iterator.scala: 409) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.generic.Growable $ class. $ plus $ plus $ eq (Growable.scala: 59) at scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 104) в scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 48) в scala.collection.TraversableOnce $ class.to (TraversableOnce.scala: 310) на scala.collection.AbstractIterator.to (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toBuffer (TraversableOnce.scala: 302) в scala.collection.AbstractIterator.toBuffer (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toArray (TraversableOnce.scala: 289) в scala.collection.AbstractIterator.toArray (Iterator.scala: 1336) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062)в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 108) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 335) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) на java.lang.Thread.run (Thread.java:748) 19/03/20 23:47:25 ПРЕДУПРЕЖДЕНИЕ TaskSetManager: потерянное задание 2.0 на этапе 11.0 (TID 20, localhost, драйвер исполнителя): java.lang.NullPointerException на $ line34. $ читать $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ anonfun $ 1.apply (: 39) на $ line34. $ читать $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ anonfun $ 1.apply (: 35) на scala.collection.Iterator $$ anon $ 11.next (Iterator.scala: 409) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.generic.Growable $ class. $ plus $ plus $ eq (Growable.scala: 59) at scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 104) в scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 48) в scala.collection.TraversableOnce $ class.to (TraversableOnce.scala: 310) на scala.collection.AbstractIterator.to (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toBuffer (TraversableOnce.scala: 302) в scala.collection.AbstractIterator.toBuffer (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toArray (TraversableOnce.scala: 289) в scala.collection.AbstractIterator.toArray (Iterator.scala: 1336) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062) в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 108) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 335) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748)

    19/03/20 23:47:25 ERROR TaskSetManager: Task 2 in stage 11.0 failed 1 times; aborting job
    org.apache.spark.SparkException: Job aborted due to stage failure: Task 2 in stage 11.0 failed 1 times, most recent failure:

Потерянное задание 2.0 на этапе 11.0 (TID 20, localhost, драйвер исполнителя): java.lang.NullPointerException при $ anonfun $ 1.применить (: 39) при $ anonfun $ 1.применить (: 35) на scala.collection.Iterator $$ anon $ 11.next (Iterator.scala: 409) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.generic.Growable $ class. $ plus $ plus $ eq (Growable.scala: 59) at scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 104) в scala.collection.mutable.ArrayBuffer. $ plus $ plus $ eq (ArrayBuffer.scala: 48) в scala.collection.TraversableOnce $ class.to (TraversableOnce.scala: 310) на scala.collection.AbstractIterator.to (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toBuffer (TraversableOnce.scala: 302) в scala.collection.AbstractIterator.toBuffer (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.toArray (TraversableOnce.scala: 289) в scala.collection.AbstractIterator.toArray (Iterator.scala: 1336) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1 $$ anonfun $ 13.применить (RDD.scala: 936) в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062)в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 2062) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.schedu.Task.run (Task.scala: 108) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 335) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) вjava.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в java.lang.Thread.run (Thread.java:748)

Спасибо!

...