文档章节

SparkSQL内置函数统计每日销售金额实例

别寒
 别寒
发布于 2017/07/28 15:11
字数 215
阅读 17
收藏 1
package com.hhb.spark.sql

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{Row, SQLContext}
import org.apache.spark.sql.types.{StructField, _}
import org.apache.spark.sql.functions._

/**
  * Created by dell on 2017/7/28.
  */
object DailySale {

  def main(args: Array[String]) {
    val conf = new SparkConf()
      .setAppName("DailySale")
      .setMaster("local")
      .set("spark.testing.memory", "2147480000")
    val sc = new SparkContext(conf)
    val sqlContext = new SQLContext(sc)

    // 要使用spark sql 内置函数,就必须在这里导入sqlcontext下的隐式转换
    import sqlContext.implicits._

    // 模拟数据
    val userSalelog = Array(
      "2017-07-01,55.05,1133",
      "2017-07-01,54.05,",
      "2017-07-01,35.05,1144",
      "2017-07-02,25.05,1155",
      "2017-07-01,65.05,1123",
      "2017-07-01,25.15,",
      "2017-07-02,65.05,1123",
      "2017-07-02,25.15,"
    )
    val userSaleLogRDD = sc.parallelize(userSalelog, 5)

    // 有效销售日志的过滤(过滤掉无效的日志)
    val filterdUserSaleLogRDD = userSaleLogRDD
      .filter{ log => if (log.split(",").length == 3) true else false }

    val userSaleLogRowRDD = filterdUserSaleLogRDD
      .map{
        log => Row(log.split(",")(0),
        log.split(",")(1).toDouble)
      }

    val structType = StructType(Array(
      StructField("date", StringType, true),
      StructField("sale_amount", DoubleType, true)
    ))

    // 转成dataframe
    val userSaleLogDF = sqlContext.createDataFrame(userSaleLogRowRDD, structType)

    // 开始进行每日销售额的统计
    userSaleLogDF.groupBy("date")
      .agg('date, sum('sale_amount))
      .map{ row => Row(row(1), row(2)) }
      .collect()
      .foreach(println)

  }

}

© 著作权归作者所有

共有 人打赏支持
别寒
粉丝 29
博文 271
码字总数 137605
作品 0
永州
程序员
私信 提问
开源电子商务网店程序--海盗云商

海盗云商(Haidao)网店系统是一个用php+MySQL进行开发的网店类网站,网站包括了PC端和手机端两种界面。 海盗云商2.0内置功能介绍(更多功能通过插件及模块拓展) 站点设置:负责商城全局站点设...

古人灏
2016/02/03
11.3K
5
DataTable中数据记录的统计

DataTable中数据记录的统计 我们在使用Sql Server这些数据库时,可以轻松的通过Sum、Aver、Count等统计出相关结果,那么,在已经把数据检索出来的DataSet(DataTable)中呢?特别是通过Web S...

晨曦之光
2012/03/09
53
0
PHP+MySQL实现对一段时间内每天数据统计优化操作实例

在互联网项目中,对项目的数据分析必不可少。通常会统计某一段时间内每天数据总计变化趋势调整营销策略。下面来看以下案例。 案例 在电商平台中通常会有订单表,记录所有订单信息。现在我们需...

这真的是一个帅气的名字
2018/07/16
0
0
【软件工程】三、软件开发方法学——结构化分析方法

版权声明:欢迎转载,转载请注明出处:土豆洋芋山药蛋 https://blog.csdn.net/qq_33414271/article/details/85527937 首先回顾一下软件开发方法学在整个软件开发过程中的位置: 结构化方法 ...

土豆洋芋山药蛋
01/01
0
0
选材网统计功能参考,大家补充一下!也可以去分享处下载

1 店铺统计 1.1 流量统计 1.1.1 店铺总流量 统计条件:本周/本月/本年/时间段 统计图: x坐标:日/月 y坐标:次数 1.1.2 商品流量排名 统计条件:本周/本月/本年/时间段 统计图: x坐标:次数...

chaogetu
2015/05/06
2
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitMQ 在spring 的使用

一、准备工作 maven依赖 <dependency>  <groupId>com.rabbitmq</groupId>  <artifactId>amqp-client</artifactId>  <version>4.0.2</version></dependency> <dependency......

狼王黄师傅
昨天
1
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
1
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
3
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
6
0
day26:shell题

1、 判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生产商为AuthenticAMD,就显示其为AMD公司; 如果其生产商为GenuineIntel,就显示其为Intel公司; 否则,...

芬野de博客
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部