scala - fold,aggregate,iterator
import org.json4s._
import org.json4s.jackson._
import org.json4s.jackson.JsonMethods._
import org.json4s.JsonDSL._
import org.json4s.JsonDSL.map2jvalue
// or
//import org.json4s.JsonDSL.WithDouble._
//import org.json4s.JsonDSL.WithBigDecimal._
//import scala.io.Source
//import scala.collection.JavaConverters._
//import scala.collection.mutable.Buffer
import java.io.{File,PrintWriter}
import java.util.Date
implicit val formats = Serialization.formats(ShortTypeHints(List()))
使用json4s进行json操作,踩了scala一个坑。
val data = readConf(file)
val t = data.head
val r = "Response"
val n = "Title"
val p = "Plot"
val contents = data.filter( row => (row \ r).extract[String].toBoolean).filter(row => (row \ p).extract[String] != "N/A")
val plots = contents.map{
row =>
val title = (row \ n).values.toString
val plots = (row \ p)
title -> plots
}
三种方式实现类元素的拼接:要注意操作符函数的参数顺序。
// val plotsIter = plots.iterator
// var rstObj = plotsIter.next ~ plotsIter.next
// while(plotsIter.hasNext) rstObj = plotsIter.next ~ rstObj
val (head,tail) = plots.splitAt(2)
val rstObj = tail.foldRight(head.head ~ head.last)(_ ~ _)
val rstObj = tail.aggregate(head.head ~ head.last)(_ ~ _, _ ~ _)
fold对操作符参数传参顺序和定义顺序一致。
fold(x)((a,b)=>foo(a,b))
先占坑,等忙过这阵子,具体给出试错经过和结论分析。
scala - fold,aggregate,iterator的更多相关文章
- mongo14-----group,aggregate,mapReduce
group,aggregate,mapReduce 分组统计: group() 简单聚合: aggregate() 强大统计: mapReduce() db.collection.group(docu ...
- 72.Python中ORM聚合函数详解:Avg,aggregate,annotate
聚合函数: 如果你用原生SQL语句,则可以使用聚合函数提取数据.比如提取某个商品销售的数量,那么就可以使用Count,如果想要知道销售的平均价格,那么就可以使用Avg. 聚合函数是通过aggregat ...
- spark快速开发之scala基础之5高阶函数,偏函数,闭包
高阶函数 高阶函数就是将函数作为参数或者返回值的函数. object function { def main(args: Array[String]): Unit = { println(test(f ...
- scala学习笔记(8): 列表的map,flatMap,zip和reduce
map,flatMap,zip和reduce函数可以让我们更容易处理列表函数. 1 map函数map将一个函数应用于列表的每一个元素并且将其作为一个新的列表返回.我们可以这样对列表的元素进行平方: s ...
- scala之map,List,:: , +:, :+, :::, +++操作
scala之map,List操作 1.Map操作 2.List操作 2.1Demo1 2.2Demo2 3.:: , +:, :+, :::, +++ 1.Map操作 Map(映射)是一种可迭代的键值 ...
- scala中的面向对象定义类,构造函数,继承
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面 ...
- scala入门教程:scala中的面向对象定义类,构造函数,继承
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面 ...
- Scala 流程空间,函数,异常处理
1,)首先留意一下下边的代码块,他是怎么运行的,貌似在c#中他是出错的,不应该出现这样的写法的,但在scala中侧不然: package com.dt.study /** * The package ...
- [原创]Scala学习:for,function,lazy
1.for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.Scalar的循环说明如下的各种形式: 1)Scala中for循环最简单的语法是: for( var x <- Rang ...
随机推荐
- activeMq的helloword
http://blog.csdn.net/clj198606061111/article/details/38236679 点对点的同步消息模型 http://blog.csdn.net/jiuqiy ...
- @ControllerAdvice -- 处理异常示例
Class : SessionInterceptor package com.estate.web.filter; import javax.annotation.Resource; import j ...
- [转]PHP判断字符串是纯英文、纯汉字或汉英混合(GBK)
PHP判断字符串是否为中文(或英文)的方法,除了正则表达式判断和拆分字符判断字符的值是否小于128 外还有一种比较特别的方法. 使用php中的mb_strlen和strlen函数判断 方法比较简单:分 ...
- Linux环境SVN命令行使用经验总结(转)
在windows机器上开发得差不多了之后,打包传送到开发机编译,在开发机上解决编译错误. [缺点] 浪费时间在打包解包,机器间传输代码. 在windows机器上开发之后,check in代码进分支,在 ...
- EventHandler中如何提升用户权限(模拟管理员权限)
不论是在工作流或是EventHandler中,我们经常希望模拟管理员权限,从而可以通过程序自定义列表项的权限. 在工作流中可以用如下代码来提升权限:(以下代码实现的功能是断开列表项所继承的权限,除管理 ...
- RF失败案例重跑
1.1 失败案例重跑 该功能主要是针对上次连跑失败的案例需要重新执行测试的情况,可自动识别上次执行失败的案例并进行重跑,无需手动选择相应的案例,简单高效. 1.5.1. 重 ...
- [WallProxy] WallProxy
1. 在Linux/Ubuntu平台导入CA.crt证书. 1.1. 首先安装libnss3-tools:sudo apt-get install libnss3-tools. 1.2. 导入证书:c ...
- Nginx 72万连接性能测试(一)
转自:http://my.oschina.net/chenzhuo/blog/150200?p=2#comments 根据系统内存64G估算单台tengine做反向代理最高支持72万连接.为了验证达到 ...
- iOS - App Extension 整体总结
一.App Extension的介绍 App Extension可以让你扩展你APP的自定义功能和内容,使用户可以在与其他应用或者系统进行互动的时候去使用它.app extension即为本文所说的e ...
- windows“启动”对应的路径
C:\Users\huangye\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup