程序只是简单的从文件中读取数据,并进行计算。

package com.bill.www

/**
* Created by Bill on 2016/2/3.
* 目的:用scala实现简单的数据计算
* 源文件:接口记录条数20条,包括时间戳和浮点型数据
* 执行方式:scala ReadFile.scala "E:\\spark\\data\\i_22_221000000073_L_20151016\\i_22_221000000073_L_20151016_223458.dat"
* 开发环境:win10 + IJ IDEA15.0.2 + scala2.11.7 + java1.7
*/ import scala.collection.mutable
import scala.io.Source object ReadFile {
def main(args: Array[String]) {
println("hello-------------------------------------------------------") // 读取文件并逐行打印其内容和长度
if(args.length > 0) {
for( line <- Source.fromFile(args(0)).getLines)
print(line.length + "\t-- " +line + "\n")
}
else
Console.err.println("Please enter a file or file with directory") println("--------------------------------------------------------1st.") // 用ArrayBuffer来存一列数据,通过对对象的一些操作来实现各种计算
val nums = mutable.ArrayBuffer[Float]()
if(args.length > 0) {
for( line <- Source.fromFile(args(0)).getLines) {
// 逐行处理
// 拆分字段,类型转换,追加到可变数组
nums += line.split(" ")(1).toFloat
}
}
else
Console.err.println("Please enter a file or file with directory") // 做一些简单的计算,并输出计算结果
// common calculate
println(nums.sum)
println(nums.length)
println(nums.max)
println(nums.min)
// average
println(nums.sum/nums.length)
println("--------------------------------------------------------2nd.")
// sort desc
nums.sorted.reverse foreach(println) println("--------------------------------------------------------end.")
}
}

执行结果如下:

hello-------------------------------------------------------
21 -- 22:34:58.0000 23.9299
20 -- 22:34:58.0005 23.927
21 -- 22:34:58.0010 23.9277
21 -- 22:34:58.0015 23.9284
20 -- 22:34:58.0020 23.927
21 -- 22:34:58.0025 23.9256
20 -- 22:34:58.0030 23.927
20 -- 22:34:58.0035 23.927
21 -- 22:34:58.0040 23.9263
21 -- 22:34:58.0045 23.9284
21 -- 22:34:58.0050 23.9277
21 -- 22:34:58.0055 23.9263
21 -- 22:34:58.0060 23.9291
21 -- 22:34:58.0065 23.9256
21 -- 22:34:58.0070 23.9277
21 -- 22:34:58.0075 23.9256
21 -- 22:34:58.0080 23.9241
21 -- 22:34:58.0085 23.9263
20 -- 22:34:58.0090 23.927
21 -- 22:34:58.0095 23.9263
--------------------------------------------------------1st.
478.54
20
23.9299
23.9241
23.927
--------------------------------------------------------2nd.
23.9299
23.9291
23.9284
23.9284
23.9277
23.9277
23.9277
23.927
23.927
23.927
23.927
23.927
23.9263
23.9263
23.9263
23.9263
23.9256
23.9256
23.9256
23.9241
--------------------------------------------------------end.

初学阶段的学习交流。

Scala简单计算实例,其在数据分析方面的优势体会的更多相关文章

  1. 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码

    本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...

  2. scala简单的功能实现~weekone

    以下是scala简单的入门题~ 1.⼀个数字如果为正数,则它的signum为1:如果是负数,怎么signum为-1:如果是0,则signum 为0.编写⼀个函数来计算这个值. object Test ...

  3. Python简单计算数组元素平均值的方法示例

    Python简单计算数组元素平均值的方法示例 本文实例讲述了Python简单计算数组元素平均值的方法.分享给大家供大家参考,具体如下: Python 环境:Python 2.7.12 x64 IDE ...

  4. ASP.NET MVC 4 插件化架构简单实现-实例篇

    先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集. 4.定义模板引擎的搜索路径. 5.在模板引擎的查找页面方 ...

  5. Linux简单程序实例(GNU工具链,进程,线程,无名管道pipe,基于fd的文件操作,信号,scoket)

    一, GNU工具链简介: (1)编译代码步骤: 预处理 -> 编译 -> 汇编 -> 链接: 预处理:去掉注释,进行宏替换,头文件包含等工作: gcc -E test.c -o te ...

  6. Redis:安装、配置、操作和简单代码实例(C语言Client端)

    Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...

  7. MVC 4 插件化架构简单实现实例篇

    ASP.NET MVC 4 插件化架构简单实现-实例篇   先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集 ...

  8. 分布式搜索ElasticSearch构建集群与简单搜索实例应用

    分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...

  9. 运用Unity实现依赖注入[结合简单三层实例]

    运用Unity实现依赖注入[结合简单三层实例] 一:理论部分 依赖注入:这是 Ioc 模式的一种特殊情况,是一种基于改变对象的行为而不改变类的内部的接口编程技术.开发人员编写实现接口的类代码,并基于接 ...

随机推荐

  1. UVA 1025_A Spy in the Metro

    [题意](小紫书)一个人从站台1出发,乘车要在时刻T到达站台n,为使在站台等车时间最短,她可以选择乘坐两个方向的列车,并在客车停靠站的时候换车. [分析]每次停站下车时,她都有三种选择,1.原地不动 ...

  2. Subsets and Subsets II (回溯,DFS,组合问题)

    Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be ...

  3. Java高并发实战,锁的优化

    锁优化 这里的锁优化主要是指 JVM 对 synchronized 的优化. 自旋锁 互斥同步进入阻塞状态的开销都很大,应该尽量避免.在许多应用中,共享数据的锁定状态只会持续很短的一段时间.自旋锁的思 ...

  4. intellij使用tomcat搭建servlet运行时环境

    http://suiyu.online/2017/08/01/intellij%E4%BD%BF%E7%94%A8tomcat%E6%90%AD%E5%BB%BAservlet%E8%BF%90%E8 ...

  5. [教程] NETGEAR R7800 路由器TFTP刷机方法(适用于.img格式固件各种刷)

    本教程是我参照R7800的OP/LEDE固件交流群内文件做的教程,可以说是完善.补充吧. 本帖适用于:① 原厂固件刷原厂固件:② 原厂固件刷第三方固件(.img格式):③ 第三方固件刷回原厂固件(.i ...

  6. IDM百度云使用

    2018-8-6 (idm百度云速度很慢) Tips:如果感觉图片较小,可以ctrl+鼠标滚轮放大网页 首先下载IDM绿色版. 解压后:右键以管理员权限运行进行绿化 最后,它会在所有支持的浏览器上安装 ...

  7. Python循环定时服务功能(相似contrab)

    Python实现的循环定时服务功能.类似于Linux下的contrab功能.主要通过定时器实现. 注:Python中的threading.timer是基于线程实现的.每次定时事件产生时.回调完响应函数 ...

  8. 转:js点击事件在ios中失效的3种解决方案

    ios中不允许将点击事件绑定在document或者body上,如果绑定上的话将会失效.解决方案: 例如:  $(document).on('click', '#generate', function ...

  9. LeetCode145 Binary Tree Postorder Traversal Java题解(递归 迭代)

    题目: Given a binary tree, return the postorder traversal of its nodes' values. For example: Given bin ...

  10. SpringMVC上传文件后返回文件服务器地址路径

    先写一个表单: <%@ page language="java" contentType="text/html; charset=UTF-8" pageE ...