scala 统计Datastage log 中每个job 的执行时间 以及一个batch job 中total 时间
2017-03-07 21:25
369 查看
package com.x.h import java.io.File import scala.io.Source /** * Created by xxxxx on 3/7/2017. * read logs and anlysis the interval time * Notes://ltsgdb001b/8525691C004D9994/0000035F7480610585255D74006B9E95/5A5A500686EEF43F852580DC000884BB */ object AnlysisSnsLogs extends App{ getTheLastedFile def getTheLastedFile(): Unit ={ var file = new File("C:\\Users\\IBM_ADMIN\\Desktop\\cognos\\datastage\\anlysislogs") for (f <- file.listFiles()){ // 这里可以增加根据文章标题时间戳获取最新文章 增加排序功能 println(f.getName.toString.substring(0,8)) readFiles(f.toString) } } def readFiles(file :String): Unit ={ import scala.collection.mutable //Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是。。 var jobName =new Array[String](30) //这里定义数组还是有问题的 var job = 0 var jobTime =new Array[String](30) //这里定义数组还是有问题的 var job1 = 0 val source = Source.fromFile(file) for (line <- source.getLines()){ if(line.contains("STATUS REPORT FOR JOB:")){ //找包含有特定字符串的行 jobName(job) = line.toString.substring(23) job +=1 } if(line.contains("Job elapsed time=")){ jobTime(job1) = line.toString.substring(20) job1 +=1 } } val lastArray = jobName.toList.zip(jobTime.toList) for( loop <- 0 to job -1){ // 上面定义的数组出现异常 ,所有这里用真实的数组长度 println(lastArray(loop)._1.toString +" : "+ lastArray(loop)._2) } // lastArray.foreach(x => println(x._1.toString +" : "+ x._2)) var totalTime = 0 for(getTime <- 0 to job1 -1){ val times = jobTime(getTime).split(":") totalTime += times(0).toInt * 3600 + times(1).toInt * 60 + times(2).toInt // 计算总时间 } println("Total time is : " + totalTime/3600 + ":" + ((totalTime%3600)/60) + ":" + ((totalTime%3600)%60) ) // 标准时间 Total time is : 6:28:8 } }
相关文章推荐
- 求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
- 存储过程报错之后,后续语句如何执行,以及相关job下次执行时间怎样进行更新
- 通过拦截器来统计每个action的执行时间
- 求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
- 线性时间内统计一个字符串中每个字符出现的次数
- 求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
- 实现无限极分类的一个类、以及统计每个等级有多少的个数(存在父子级关系的字段)
- javascript 按一个间隔执行时间事件以及详细解释
- 定义一个job在指定的时间去执行指定的存储过程
- 通过拦截器来统计每个action的执行时间
- 通过拦截器来统计每个action的执行时间
- 做一个统计数据时到底哪种查询更省时间呢
- 【VB6】写Log记录程序执行时间
- [导入]c# 统计方法执行时间,计算缓存读取数据方法的命中率
- 如何在sqlplus中查看oracle数据库sql语句执行计划,执行时间和统计信息
- javascript入门·脚本执行的时间的四种类型(赠送一个转换的小例题)
- 用于统计函数执行时间的类
- c#关闭系统进程以及如何调用cmd并执行命令开发者在线 Builder.com.cn 更新时间:2008-08-05作者:乔毅 来源:IT168
- LINQ下使用三层架构的探索(六)逻辑访问层中的数据统计以及一个主从报表。
- 修改job的执行间隔时间:sys.dbms_job.interval()