注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿弥陀佛

街树飘影未见尘 潭月潜水了无声 般若观照心空静...

 
 
 

日志

 
 
关于我

一直从事气象预报、服务建模实践应用。 注重气象物理场、实况场、地理信息、本体知识库、分布式气象内容管理系统建立。 对Barnes客观分析, 小波,计算神经网络、信任传播、贝叶斯推理、专家系统、网络本体语言有一定体会。 一直使用Java、Delphi、Prolog、SQL编程。

网易考拉推荐

操控Dataframe  

2016-01-09 23:17:21|  分类: Spark |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
/**
* 取多时次地面气象要素csv文件
* @param currentYMDH:资料时间
* @param nHour:多少个时次
* @return :DataFrame
*/
def apply(currentYMDH : String, nHour : Int):Array[Dataset[EleH]]={
import common.TimeTransform._
val ymdh_fmt = DateTimeFormat.forPattern("yyyyMMddHH")
val datetime = DateTime.parse(currentYMDH, ymdh_fmt)
val dfs = Array.fill[Dataset[EleH]](nHour)(null)
for(h <- (0 until nHour).par){
val t = datetime.minusHours(h)
val ts = mk_ymdh(t)
dfs(h) = EleH(ts)
}
dfs
}

def getMinMaxEle(eleH : DataFrame,enm : String):MMPair={
val nChk = 10
val sel = s"SELECT ${enm} FROM eleH where not(isNaN(${enm})) order by ${enm}"
val eAsc = sqlContext.sql(s"${sel}")
val eDesc = sqlContext.sql(s"${sel} desc")
val mins = eAsc.take(nChk).mkString(",")
val maxs = eDesc.take(nChk).mkString(",")
val min = eAsc.take(nChk).last.getFloat(0)
val max = eDesc.take(nChk).last.getFloat(0)
println(min,max)
println(mins)
println(maxs)
(min,max)
}

def merge(dfs : Array[DataFrame],nHour:Int):DataFrame={
require(nHour>=0 && nHour <= dfs.length)
var df0 = dfs(0)
for(h <- (0 until nHour).par) {
if (dfs(h) != null) {
df0 = df0.unionAll(dfs(h))
} else {
println(s"df(${h})=null")
}
}
df0
}
  评论这张
 
阅读(199)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017