groupBy和keyBy的key选择器不一样吗?
来源:3-6 指定key之Tuple
Amourxxxx
2021-02-25
case class Student(name: String, age: Int,teacher:Teacher)
case class Teacher(name:String,room:(Int,Int,Int),salary:Int)
def main(args: Array[String]): Unit = {
val teacher = Teacher("teacher-w",(1,2,3),99)
val students = List(Student("a",11,teacher),Student("b",22,teacher))
val benv = ExecutionEnvironment.getExecutionEnvironment
benv.fromElements(students:_*).groupBy("name").sum("teacher.salary").print()
}
以上这段代码会报错:
Fields 'teacher.salary' are not valid for 'com.lx.list.List1$Student(name: String, age: Integer, teacher: com.lx.list.List1$Teacher(name: String, room: scala.Tuple3(_1: Integer, _2: Integer, _3: Integer), salary: Integer))'.
但是如果把groupBy换成keyBy就可以执行了。请问这是什么原因?
写回答
1回答
-
Michael_PK
2021-02-25
这个错误信息是,sum的这个api里面不支持teacher.salary这种写法,所以这么写不会报错
072021-02-26
相似问题