【发布时间】:2020-07-08 00:51:30
【问题描述】:
我想知道如何使用 case class 将 x._1._2, x._1._3 替换为字段的名称
def keyuid(l:Array[String]) : (String,Long,String) ={
//val l=s.split(",")
val ip=l(3).split(":")(1)
val values=Array("",0,0,0)
val uid=l(1).split(":")(1)
val timestamp=l(2).split(":")(1).toLong*1000
val impression=l(4).split(":")(1)
return (uid,timestamp,ip)
}
val cli_ip = click.map(_.split(","))
.map(x => (keyuid(x), 1.0)).assignAscendingTimestamps(x=>x._1._2)
.keyBy(x => x._1._3)
.timeWindow(Time.seconds(10))
.sum(1)
【问题讨论】:
-
你的意思是元组 (String, Long, String) 吗?我在这里真的看不到一些案例类
-
其实我想让代码更具可读性,所以我想用字段的名称替换 x._1._2 和 x._1._3(在我的情况下为 ip)。函数 keyuid 是否可以返回案例类?
-
知道了。是的,您可以将所有三个字段打包到您定义的案例类中。
标签: scala class apache-flink