第1关:用 Flink 获得数据并输出
任务描述
本关任务:编写一个能用 Flink 获得数据并输出的小程序。
相关知识
为了完成本关任务,你需要掌握:如何用 Flink 获得数据并输出。
编程要求
根据提示,在右侧编辑器补充代码,获得数据并输出, 样例类为:
case class UserBehavior( userId: Long, itemId: Long, categoryId: Int, behavior: String, timestamp: Long )
对应如下数据内容:
543462,1715,1464116,pv,1511658000662867,2244074,1575622,pv,1511658000
import org.apache.flink.api.java.io.TextInputFormat
import org.apache.flink.streaming.api.TimeCharacteristic
import org.apache.flink.streaming.api.scala._
//输入数据的样例类
case class UserBehavior( userId: Long, itemId: Long, categoryId: Int, behavior: String, timestamp: Long )
object Test1 {
def main(args: Array[String]): Unit = {
//flink的流执行环境
val env = StreamExecutionEnvironment.getExecutionEnvironment
//设定Time类型为EventTime
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
//并发为1
env.setParallelism(1)
//获得数据源的文件
val stream = env.readFile[String](
new TextInputFormat(null),
"/data/workspace/myshixun/pflinkhotitems1_2/src/UserBehavior1.csv")
//********** Begin **********
val stream1=stream
.map(line => {
val linearray = line.split(",")
UserBehavior( linearray(0).toLong,linearray(1).toLong, linearray(2).toInt,
linearray (3),linearray(4).toLong)
})
//********** End **********
stream1.writeAsText("/root/files/result.txt").setParallelism(1)
env.execute("获得数据")
}
}
512

被折叠的 条评论
为什么被折叠?



