集算器如何处理类文本数据计算
2015-10-30 10:02
316 查看
json
Java有足够多的类库用于解析和生成json,但缺乏后续计算能力。集算器支持多层结构数据,可以不丧失信息地将json解析成可计算的内存数据表进一步处理。
设有如下格式的json数据:
{
“order”:[
{
“client”:”北京润乾软件”,
“date”:”2015-6-23”,
“item” : [
{
“product”:”HP笔记本”,
“number”:4,
“price”:3200
},
{
“product”:”DELL服务器”,
“number”:1,
“price”:22100
}]
},…]
}
要写入数据库中order表,结构为:orderid,client,date;和orderdetail表,结构为:orderid,seq,product,number,price的orderdetail表,orderid和seq按顺序生成即可。
集算器可将多层json串解析成多层数据集,A2的item字段取值又是一个表。
除了解析外,也可用集算器将多层数据集生成多层json串。
Excel
Excel相当于已经结构化的文本。Java有能解析xls的开源类库(如poi),功能强大但过于底层,开发复杂度高。集算器封装了poi,可读入xls转成二维数据表再进一步运算。
设有range.xls和position.xls的内容分别为:
要针对position.xls的每一行position,在range.xls中寻找到start/stop将其覆盖,然后将range.xls中相应行内容补充到posistion.xls之后。
集算器读入xls后可以充分利用已有的计算能力。用Excel自带的VBA只能硬编码实现JOIN,非常繁琐,有时不得不导入数据库来做。
Java有足够多的类库用于解析和生成json,但缺乏后续计算能力。集算器支持多层结构数据,可以不丧失信息地将json解析成可计算的内存数据表进一步处理。
设有如下格式的json数据:
{
“order”:[
{
“client”:”北京润乾软件”,
“date”:”2015-6-23”,
“item” : [
{
“product”:”HP笔记本”,
“number”:4,
“price”:3200
},
{
“product”:”DELL服务器”,
“number”:1,
“price”:22100
}]
},…]
}
要写入数据库中order表,结构为:orderid,client,date;和orderdetail表,结构为:orderid,seq,product,number,price的orderdetail表,orderid和seq按顺序生成即可。
A | |
1 | =file(“data.json”).read().import@j().order |
2 | =A1.new(#:orderid,client,date) |
3 | =A1.news(item;A1.#:orderid,#:seq,product,number,price) |
4 | >db.update@i(A2,order) |
5 | >db.update@i(A3,ordedetail) |
除了解析外,也可用集算器将多层数据集生成多层json串。
Excel
Excel相当于已经结构化的文本。Java有能解析xls的开源类库(如poi),功能强大但过于底层,开发复杂度高。集算器封装了poi,可读入xls转成二维数据表再进一步运算。
设有range.xls和position.xls的内容分别为:
range.xls | position.xls | |||
range | start | stop | Point | position |
Range1 | 4561 | 6321 | point1 | 5213 |
Range2 | 9842 | 11253 | point2 | 10254 |
… | … |
A | |
1 | =file(“range.xls”).importxls@t() |
2 | =file(“position.xls”).importxls@t() |
3 | =A2.derive((t=A1.select@1(position>=start&&position<=stop)).range:range,t.start:start,t.stop:stop) |
4 | =file(“result.xls”).exportxls(A3) |
相关文章推荐
- Ubuntu 14.04中安装Sublime Text 3并使用SublimeClang插件
- CentOS6.x 升级到 CentOS7.x(测试)
- 如何启用或停用 Mac OS X 系统快捷键
- codeforces 589G(birnary serach + bit + 离线)
- js的prototype属性
- 利用OPENCV制作10*10的标定板
- 工程编译常见问题
- JAVA面视编程题
- 移动应用测试点
- c++中.dll与.lib文件的生成与使用的详解
- mysql的几种int
- order by 1,2
- JAVA同步之 synchronized关键字详解
- Win7 64位系统上配置使用32位的Eclipse(转)
- Java中List和ArrayList的区别
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 关于kettle的空字符串和NULL的问题
- workflow保存的时候报警告,382,328,401
- 使用子事务(saveponit)时,当子事务抛出异常后,此异常处理掉不继续往外抛, Transaction has been rolled back because it has been marke