使用Flume采集流式数据发送到Kafka,再由Flink消费Kafka数据,实现电话号码统计本地文件读取

def main(args: Array[String]): Unit = {

val env = ExecutionEnvironment.getExecutionEnvironment
env.setParallelism(1)

val log: DataSet[String] = env.readTextFile("D:\\Mywork\\workspace\\IdeaProjects\\baway2019\\flink-1707E\\src\\main\\resources\\log.txt")

val dataset: DataSet[(String, String, String, String, String, Long)] = log.map(data => {
  val dataArr: Array[String] = data.split("\t")
  (dataArr(0).trim, dataArr(1).trim, dataArr(2).trim, dataArr(3).trim, dataArr(4).trim, 1L)
})
//统计每天的访问量

// dataset.groupBy(0).sum(5).map(t =>(t._1, t._6)).print()
//统计每个“userid”的访问量
// dataset.groupBy(3).sum(5).map(t =>(t._4, t.6)).print()
//统计2019/8/18日访问的IP地址(要求去重)
// dataset.filter(
._1 == “2019/8/18”).map(t => (t._1,t.2)).distinct().print()
//统计2019/8/18日访问的username(要求去重)
// dataset.filter(
.1 == “2019/8/18”).map(.3).distinct().print()
//统计2019/8/18日访问2次及以上的IP地址
dataset.filter(
._1 == “2019/8/18”)
.groupBy(1)
.sum(5)
.map(t => (t._2,t._6))
.filter(t => t.2 >= 2)
// .print()
//统计IP地址为10.3.9.18的访问日期(要求去重)
// dataset.filter(
.2 == “10.3.9.18”).map(.1).distinct().print()
//统计2019/8/18日访问返回值(return)为warning的IP地址
dataset.filter(
.1 == “2019/8/18”).filter(.5 == “warning”).map(._2).print()

}

你可能感兴趣的:(随机,kylin,flink)