我有这样的数据集
15,Rom,36,49
16,Weyoun,22,323
17,Odo,35,13
18,Jean-Luc,45,455
我想选择第3列和第4列作为我的键和值,如何在Apache Flink中执行平均操作。
我能够实现“按键分组”。但是我无法对每个键的值执行平均操作。
val lines: DataSet[String] = env.readTextFile("/home/kiran/Desktop/social_friends.csv")
val jn = lines.map(line => line.split(",")).map(word => (word(2).toString,word(3).toInt)).groupBy("0")
答案 0 :(得分:4)
请注意,我确实也改变了map
。它现在发出一个3元组:
val lines: DataSet[String] = env.readTextFile("/home/kiran/Desktop/social_friends.csv")
val jn = lines
.map(line => line.split(","))
.map(word => (word(2).toString,word(3).toInt,1))
.groupBy("0")
.reduce { (left, right) => (left._1, left._2 + right._2, left._3 + right._3) }
.map(tuple => (tuple._1, tuple._2 / tuple._3))
答案 1 :(得分:0)
这应该有效
enterprise.wsdl.xml