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这种写法,所以这么写不会报错

0
7
Amourxxxx
回复
Michael_PK
这都是些基础算子。。应该不会吧。我是1.10
2021-02-26
共7条回复

新一代大数据计算引擎 Flink从入门到实战

入行或转型大数据新姿势,多语言系统化讲解,极速入门Flink

969 学习 · 296 问题

查看课程