浏览 1618 次
锁定老帖子 主题:结合h2的csvread辅助文本统计分析
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-07-03
最近一直做一些数据分析 如: 在一些第三方工具上导出一些csv/xls格式的文件,然后分析里面的内容,做过滤合并或统计等,用groovy习惯了,所以处理些文本还是小菜的,就是要做统计的时候,不用sql真麻烦啊,本来一个group by的,自己用代码写就很蹩脚,如
list.clone().unique{it.id}.each{ int num = list.count{one -> it.id == one.id} *** }
groovy的db组件很8错的,弄一个内存数据库,可以很容易实现文本和sql结合做数据,就没必要每次都整理文件导入数据库了,而且sql提供的string方法就灵活性而言不如动态语言
代码原语如下
import groovy.sql.Sql def p = [ url:'jdbc:h2:mem:test', u:'sa', p:'', driver:'org.h2.Driver' ] def db = Sql.newInstance(p.url, p.u, p.p, p.driver) try { db.execute(''' create table temp (); ''' ) String sql = ''' select a.flag, a.dat, count(1) as num from csvread('test.csv') a group by dat, flag ''' db.rows(sql).each{ println it.DAT.padRight(20) + it.FLAG.padRight(10) + it.NUM } }finally { db.close() }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |