Я использую 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)
Спасибо!