scala实例——二
来源:互联网 发布:漫步者音响推荐知乎 编辑:程序博客网 时间:2024/06/11 19:13
import scala.util.control.Breaks._import org.apache.spark.sql._import org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.sql.{DataFrame, SQLContext, SparkSession}import org.apache.spark.rdd.RDDimport org.apache.spark.sql.execution.vectorized.ColumnarBatch.Rowimport scala.util.Randomimport scala.util.control.Breaksobject simulation_data_flow_analyse { def main(args: Array[String]) { val spark = SparkSession .builder() .appName("flow_analyse") .config("spark.some.config.option", "some-value") .getOrCreate() import spark.implicits._ val df = spark.read.json("/spark_data/visit_records.json") df.createOrReplaceTempView("visit") // Global temporary view is tied to a system preserved database `global_temp` var result_string = "" var sql = "SELECT in_time from visit order by `in_time` limit 1" var min_time = (spark.sql(sql).collect()) (0).asInstanceOf[Row].getInt(0) sql = "SELECT in_time from visit order by `in_time` desc limit 1 " var max_time = (spark.sql(sql).collect()) (0).asInstanceOf[Row].getInt(0) var now_time = 0; var outer = new Breaks now_time = min_time; while (now_time <= max_time) { outer.breakable { var come_num = 0; var time1 = now_time; var time2 = now_time + 60; var sql2 = "SELECT count(*) num from visit where `in_time` >= " + time1 + " and `in_time` <= " + time2 + ""; //SQL语句 come_num = (spark.sql(sql2).collect()) (0).asInstanceOf[Row].getInt(0) if (come_num == 0) { now_time = now_time + 60; outer.break; } var flow_num = come_num; var time = time1; var rand = new Random; var i = rand.nextInt(7)+4; flow_num = flow_num * i; //每一条 flow 结果 添加到 结果集 var vist_string = """{"time":"""+time +","+""""num":"""+flow_num+"}\n" result_string = result_string + vist_string now_time = now_time + 60; } } //将结果集 存入 文件 import java.io._ val writer = new PrintWriter(new File("\\sparkdata\\people_flow.json" )) writer.write(result_string) writer.close() }
0 0
- scala实例——二
- scala 实例——一
- scala实例——三
- scala实例——四
- scala实例——五
- scala实例——六
- scala——实例 new_customer_extract
- scala 代码实例——customer_extract
- Java\Scala\Python三种语言求解经典编程实例(二)—— 尾数前移
- Scala基本概念(二)——循环
- Scala学习笔记(二)—chapter2
- Scala进阶源码实战之二——面向对象
- scala 学习(二)——for循环break
- Scala语法(二)——控制结构
- Scala 学习笔记(二)— Everything is an object
- Scala(二)
- scala学习二:scala进阶
- scala —— maven scala项目开发
- EditTextView 带空格分隔的输入(电话号码,银行卡)
- 【Linux】Linux中常用操作命令
- java基础改学C++(六)指针(1)
- Spring事务系列
- 【Untiy&XML】XML继承的问题
- scala实例——二
- /proc下的kcore文件过大,能变小吗?
- Informatica基础系列(外)——不支持 MySQL Community 版本的解决方案
- ListView smoothScrollToPositionFromTop 偶现滚动位置不精确问题解决办法
- android studio 添加码云git
- Android使用intent跳转到其它应用activity界面
- Android时间分发机制和流程最清晰版本(个人认为)
- 子集生成的两种方法
- ACM:Y: Three Jugs