Scala简单计算实例,其在数据分析方面的优势体会
程序只是简单的从文件中读取数据,并进行计算。
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简单计算实例,其在数据分析方面的优势体会的更多相关文章
- 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...
- scala简单的功能实现~weekone
以下是scala简单的入门题~ 1.⼀个数字如果为正数,则它的signum为1:如果是负数,怎么signum为-1:如果是0,则signum 为0.编写⼀个函数来计算这个值. object Test ...
- Python简单计算数组元素平均值的方法示例
Python简单计算数组元素平均值的方法示例 本文实例讲述了Python简单计算数组元素平均值的方法.分享给大家供大家参考,具体如下: Python 环境:Python 2.7.12 x64 IDE ...
- ASP.NET MVC 4 插件化架构简单实现-实例篇
先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集. 4.定义模板引擎的搜索路径. 5.在模板引擎的查找页面方 ...
- Linux简单程序实例(GNU工具链,进程,线程,无名管道pipe,基于fd的文件操作,信号,scoket)
一, GNU工具链简介: (1)编译代码步骤: 预处理 -> 编译 -> 汇编 -> 链接: 预处理:去掉注释,进行宏替换,头文件包含等工作: gcc -E test.c -o te ...
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...
- MVC 4 插件化架构简单实现实例篇
ASP.NET MVC 4 插件化架构简单实现-实例篇 先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集 ...
- 分布式搜索ElasticSearch构建集群与简单搜索实例应用
分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...
- 运用Unity实现依赖注入[结合简单三层实例]
运用Unity实现依赖注入[结合简单三层实例] 一:理论部分 依赖注入:这是 Ioc 模式的一种特殊情况,是一种基于改变对象的行为而不改变类的内部的接口编程技术.开发人员编写实现接口的类代码,并基于接 ...
随机推荐
- Cookie对象的特点
1.存储少量不重要的数据2.存储在客户端的文本文件中(必须设置有效期,否则不被存储)3.安全性差4.存储的数据类型--字符串5.浏览器窗口无关,但与访问的站点相关6.具体特定的过期时间和日期7.在客户 ...
- 【Python】python扩展
当python的基本功能无法满足要求.或者是为了保密源码(.py).遇到性能瓶颈时,我们经常要扩展python,扩展语言能够是C/C++.Java.C#等. 为python创建扩展须要三个基本的步骤: ...
- Struts2.3动态调用报 No result defined for action 错误
struts 2.3.16 採用动态调用发现不工作报404 not found,网上查找原因: 1.由于:struts2中默认不同意使用DMI 所以:须要在配置文件里打开: <constant ...
- 【Android】应用安全——反编译
用java开发最操心的就是得到反编译,所以作为开发人员我们须要知道怎么反编译,那样才干知道怎样防止反编译.保证代码安全. 以下来看下比較经常使用的方法! 第一种方式:利用apktool反编译 1,首先 ...
- MariaDB 数据库的备份
1> 备份单个数据库 mysqldump -uroot -plichao123 --database students1 > stundents.sql; 2>查看备份文件 3> ...
- 系统的BIOS与系统安装
今天偶尔看到个介绍电脑BIOS的与各种本子安装系统的介绍:(记录一下) 网络地址:http://blog.sina.com.cn/s/blog_4a1faae60102dyek.html
- tt1
DIm #include iostream.h#include iostream.h# #include iostream.h http://www.cnblogs.com/cmt/archive/2 ...
- MySQL-插入数据(INSERT)
Insert语句可将一行或多行插入到表中. INSERT语法: INSERT INTO table(column1,column2...) VALUES (value1,value2,...); 首先 ...
- YTU 2625: B 构造函数和析构函数
2625: B 构造函数和析构函数 时间限制: 1 Sec 内存限制: 128 MB 提交: 772 解决: 513 题目描述 在建立类对象时系统自动该类的构造函数完成对象的初始化工作, 当类对象 ...
- Flask开启多线程、多进程
一.参数 app.run()中可以接受两个参数,分别是threaded和processes,用于开启线程支持和进程支持. 二.参数说明 1.threaded : 多线程支持,默认为False,即不开启 ...