使用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()

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值