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

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. 牛客网 中南林业科技大学第十一届程序设计大赛J题 二分+线段树

    https://www.nowcoder.com/acm/contest/124#question 题意  找第一个不小于K的数的下标,然后对它前一个数加一 解析   我们可以维护一个最大值数组  1 ...

  2. UVA 1025_A Spy in the Metro

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

  3. Ubuntu16.04安装deb文件时提示:此软件来自第三方且可能包含非自由组件

    解决方式: 1.在Ubuntu软件中心安装GDebi. 2.安装好之后,选择这个要安装的deb文件右键,打开方式选择GDebi,然后输入管理员密码等待安装,期间如果不行需要重试几次. 3.另外的方法, ...

  4. HTTPS 是如何保证安全的?

    每当我们讨论到信息安全的时候,我们最长接触到的信息加密传输的方式莫过于 HTTPS 了,当我们浏览器地址栏闪现出绿色时,就代表着这个网站支持 HTTPS 的加密信息传输方式,并且你与它的连接确实被加密 ...

  5. java代码判断文件类型(判断文件后缀名)

    1.两点需要注意 1.string.spilt("\\.")分割字符串成子字符串数组,以“.”分割,必须写成string.spilt("\\.")的方式,不能写 ...

  6. symfony could not load type 'datetime'

    当用curd生成控制器后,当修改的时候,会有这个提示,解决方法 在orm中通过事务的方式填充时间,然后把生成的form中的文件的时间段去掉 $builder ->add('title') -&g ...

  7. VC++ 提示无法打开包括文件“iostream.h”怎么办

    把 //#include "iostream.h" 改成 #include<iostream> using namespace std;                 ...

  8. ≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(三)

    照例文章第一段跑题,先附上个段子(转载的哦~): I hate CS people. They don't know linear algebra but want to teach projecti ...

  9. C/C++生成可执行文件过程

    编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序.编译的 ...

  10. 【uoj35】后缀排序

    后缀数组模板题 #include<algorithm> #include<cstdlib> #include<cstring> #include<cstdio ...