Ich versuche, Funken-Dataset (Funke 2.0.1) zu lernen. Unterhalb des linken äußeren Joins wird eine Nullzeiger-Ausnahme erstellt.Null-Zeiger-Ausnahme - Apache Spark Dataset linken äußeren Join
case class Employee(name: String, age: Int, departmentId: Int, salary: Double)
case class Department(id: Int, depname: String)
case class Record(name: String, age: Int, salary: Double, departmentId: Int, departmentName: String)
val employeeDataSet = sc.parallelize(Seq(Employee("Jax", 22, 5, 100000.0),Employee("Max", 22, 1, 100000.0))).toDS()
val departmentDataSet = sc.parallelize(Seq(Department(1, "Engineering"), Department(2, "Marketing"))).toDS()
val averageSalaryDataset = employeeDataset.joinWith(departmentDataSet, $"departmentId" === $"id", "left_outer")
.map(record => Record(record._1.name, record._1.age, record._1.salary, record._1.departmentId , record._2.depname))
averageSalaryDataset.show()
16/12/14 16:48:26 ERROR Executor: Ausnahme in Aufgabe 0.0 in der Stufe 2.0 (TID 12) java.lang.NullPointerException
Dies liegt daran, während die äußere linke Tun Join gibt null Werte für record._2.depname.
Wie geht das? Dank
Obwohl dies wahrscheinlich funktioniert es eine sehr schlechte Lösung ist.! o ich verstehe nicht, warum die Verbindung nicht eine Option, die zurück von die Fallklasse, so dass es leicht zu überprüfen ist. – Sparky