`
datamachine
  • 浏览: 165919 次
社区版块
存档分类
最新评论

集算器用作Java结构化文件计算类库

阅读更多

  有时我们不能使用数据库而采用文件系统存储数据,这时就需要自行完成基于文件的数据计算。但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差。

  使用免费的集算器可以弥补这一不足。集算器封装了丰富的结构化文件计算函数,并提供JDBC接口。JAVA应用程序可以将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果,详情参考集算器用作Java计算类库的应用结构。

  下面举例说明JAVA中常见的结构化计算,以及集算器对应的解法。

文本查询

  sOrder.txt是tab分割的文本,现在要用JAVA查询出指定时间段内的订单。

  源数据如下:
 

  集算器代码:
 

  读入文件,默认分隔符是tab,@t表示将第一行读为列头。之后执行条件查询。startDate和endDate是输入参数,比如2010-01-01至2010-12-31。结果:

文本排序

  针对sOrder.txt,请在JAVA中按照客户代码降序排序,按照年、月升序排序。

  集算器代码:=A1.sort(-Client,year(OrderDate),month(OrderDate))

  解释:降序排列使用“-”,年、月需要计算获得。

  引申:如果要在查询的基础上排序,可以写作=A2.sort(…),或者=A1.select(…).sort(…)

  结果:

分组汇总:计算出每个销售员每年的销售额和订单数

  代码:=A1.groups(SellerId,year(OrderDate);sum(Amount),count(~))

  解释:函数group可在分组的同时进行汇总,~表示每组或当前组,count(~)等于count(OrderID)。

  结果:
 

获得唯一值:

  列出sOlder中的客户名单。

  代码:=A1.id(Client)

  结果:
 

去除重复

  保留sOlder中每个客户每个销售的第一条记录。

  代码:=A1.group@1(Client,SellerId)

  解释:函数group用来分组(可以不汇总),@1表示每组取第1条记录。

  结果:
 

TopN

  找到每个销售员销售额最大的3笔订单。

  代码:=A1.group(SellerId;~.top(-Amount;3):t).conj(t)

  解释:函数top过滤出TopN,”-”表示逆序,函数conj用于合并。

  引申:如果只取最大的一笔订单,可以用maxp函数。

  计算结果:
 

关联计算
  emp.txt是tab分割的文本,其EId字段对应sOrder中的SellerId字段,请在JAVA中将emp.txt的Name、Dept、Gender这三个字段对齐到sOrder.txt。

  源数据如下:
 

  集算器代码:

  函数join执行连接运算,并将两个表改名为s和e,@1表示左连接。之后从连接的表中取得需要的字段,组成新的结构化二维表格。结果:
 

  引申:@1表示左链接,@f表示全连接内连接无选项。

  前面的例子假定文件较小,如果文件较大无法放入内存,可用集算器游标进行计算,详情参考相关文档。

 

  • 大小: 26.1 KB
  • 大小: 15.8 KB
  • 大小: 44.5 KB
  • 大小: 48.6 KB
  • 大小: 19.4 KB
  • 大小: 10.8 KB
  • 大小: 18.2 KB
  • 大小: 45.2 KB
  • 大小: 36.2 KB
  • 大小: 38.7 KB
  • 大小: 46.5 KB
0
0
分享到:
评论

相关推荐

    JAVA类库.rar

    在Java中,包是一种逻辑结构,用于将相关的类和接口分组,避免命名冲突,并提供了一种模块化的方式组织代码。`com`通常代表一个公司的域名倒写,比如`com.example.myapp`,这可能表示这个应用或者类库是由example....

    图书馆信息检索系统(JAVA+XML)

    在JAVA端,利用SAX或DOM解析器读取XML文件。SAX适用于大文件,按事件驱动的方式逐行读取,节省内存;DOM则一次性加载整个文件,适合小规模数据。根据项目需求,可以选择合适的解析策略。 为了提高检索效率,还可以...

    Hibernate第三方类库

    ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。在Hibernate中,ANTLR主要用于解析HQL(Hibernate Query Language)和JPQL(Java ...

    Java工作量统计系统源码,基于文件系统保存数据.zip

    Java工作量统计系统是一...通过深入研究源码,可以学习到文件操作、数据持久化、面向对象设计、UI编程等多个Java编程领域的知识。对于想要提升Java开发技能或了解项目管理工具实现的人来说,这是一个有价值的参考资源。

    java音频水印程序

    Java音频水印程序是一种利用编程技术在音频文件中嵌入隐藏信息的技术,通常用于版权保护、数据追踪或者个性化标识。这个程序是用Java语言编写的,它能够将BMP图像文件的数据转换为一种形式,然后将其嵌入到WAV等音频...

    基于java语言的提醒簿 - Java源码 - JAVA & XML

    XML(eXtensible Markup Language)是一种用于存储和传输结构化数据的标准格式。在这个提醒簿中,XML文件被用作数据库,存储备忘录的信息。利用Java的DOM(Document Object Model)或SAX(Simple API for XML)解析...

    src java source

    2. `org`:在Java中,`org`通常被用作组织(organization)的顶级包名,可能包含了第三方库或项目内部的组织结构。 3. `javax`:这是Java扩展的包名,通常包含一些标准库的扩展或补充API。 4. `java`:这是Java...

    HttpServer_Java:用Java实现的简单Http服务器,可以当作类库使用,配置文件在settings.xml

    本项目"HttpServer_Java"提供了一个简单的Http服务器实现,它可以用作一个类库,便于集成到其他Java项目中。这个服务器的核心是处理HTTP协议,这是一种用于传输超文本的应用层协议,是互联网上应用最广泛的服务之一...

    Java 7 Pocket Guide 2nd Edition

    总结来说,《Java 7口袋指南》第2版旨在通过其结构化的内容安排,帮助读者从基础的Java语言规范到整个Java平台的理解,再到使用工具和UML进行软件设计,从而全面深入地掌握Java技术。该书不仅是Java开发者的实用参考...

    JAVA复习资料

    25. **JDK工具**:`java.exe` 是Java解释器,用于执行 `.class` 文件,答案为 `B`。 通过以上知识点的梳理,我们可以更深入地理解Java编程语言的基础概念和语法结构,这对于备考Java相关考试非常重要。

    基于Java的软件体系结构风格教学软件设计源码

    Java语言以其跨平台性、面向对象的特性以及丰富的类库支持,在教育界广泛使用,特别是在教授软件体系结构方面,Java的这些特点能够帮助学生更好地理解软件设计的基本原则和模式。 本教学软件源码集成了25个不同类型...

    java经典面试试题(从数据结构到设计模式)

    根据提供的文件内容,我们可以整理出一系列与Java编程语言相关的知识点,包括数据结构、设计模式以及面试常见问题等。下面将对这些知识点进行详细的解析。 ### 1. Java平台概述 - **平台无关性**:Java的一大特点...

    java个人笔记

    根据提供的文件信息,我们可以从中提炼出以下关于Java的相关知识点: ### Java个人笔记概览 这份文档作为个人学习Java过程中的笔记整理,对于初学者来说具有一定的参考价值。 ### Java简介 1. **Java是什么?** ...

    基于Java实现的HaffMan-DTC图片量子化设计源码

    JPEG和PNG图片文件可能被用作测试算法的数据集或是示例图像;ZIP压缩文件可能用于存储项目构建后的分发包或者是资源文件;Markdown文件可以包含项目的说明或者是README,用于指导用户如何安装和运行项目;IDEA项目...

    基于Java语言的表白主题InLove-master设计源码

    从项目源码结构来看,它包含了13个Java源代码文件,这些文件负责处理用户输入、展示界面、实现动画效果以及运行逻辑等。 为了更好地展示表白的主题,该项目还包含了30个JPG格式和16个PNG格式的图片文件,这些图片...

    基于Java开发的中州养老项目设计源码

    在项目目录结构中,“zzyl-”前缀的文件夹表明了该项目采用了模块化的开发方式,其中“zzyl-common”可能包含了通用的工具类库和基础模块,“zzyl-web”可能包含与Web交互相关的前端代码和页面模板,“zzyl-service...

    基于Java语言的学生成绩管理系统后端设计源码

    在Java后端开发中,XML文件是重要的配置工具,它允许开发者以结构化的方式存储和管理配置信息,这对于系统的部署、维护以及扩展提供了极大的便利。例如,通过配置文件可以轻松更改数据库连接字符串,而无需深入修改...

    基于Java语言的毕设代码后端设计源码

    本项目的后端源码包含了110个文件,这些文件分布在不同的目录和类型中,涵盖了Java源代码文件、XML配置文件、DLL库文件、JAR库文件、属性文件、数据文件、Maven构建文件、YAML配置文件以及图片文件等多种类型。...

    src.rar_java chat_java 聊天_java画图_画图板 java_聊天

    在这个项目中,Java被用作主要的开发语言,用于实现聊天和画图的功能。 2. **网络通信**:聊天功能的实现依赖于网络通信技术。Java的`Socket`类库提供了基础的网络连接和数据传输能力,允许两个或多个客户端之间...

    基于Java语言的MyClock闹钟系统设计源码

    jar文件是Java应用的打包文件,用于存放编译后的.class文件以及类库。 MyClock闹钟系统的设计展现了对多任务管理的深入理解,能够在同一时间管理多个闹钟任务,提供用户设置单次或循环闹钟的能力。用户可以通过系统...

Global site tag (gtag.js) - Google Analytics