文档章节

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

别寒
 别寒
发布于 2017/07/28 15:11
字数 215
阅读 98
收藏 1

精选30+云产品,助力企业轻松上云!>>>

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)

  }

}

别寒
粉丝 30
博文 273
码字总数 155300
作品 0
永州
程序员
私信 提问
加载中
请先登录后再评论。
10.Spark SQL:销售额统计案例实战

SparkSQL内置函数以及每日UV销售额统计案例实战 java版本: scala版本:

独立小桥风满袖
06/23
0
0
1.1项目设想

A. 系统展望。 服装连锁店POS收费系统,是一个用于记录销售和处理支付的计算机系统,系统包括硬件(计算机和条形码扫描仪等)和软件。主要应用场景有: (1)客户携带商品到收银台,收银员将...

scaujohn
2015/04/01
90
3
图书销售管理系统的可行性研究报告(1)

图书管理系统的介绍以及可行性研究报告的任务分配 图书销售管理系统的介绍 某书店图书销售管理业务的调查情况如下,请按照以下资料为该书店设计一个图书销售管理信息系统。 (1)收集到的系统...

osc_p1rj1z8j
2018/10/18
8
0
零基础学基金投资系列-07-基金费用

主要内容: 认购费 申购费 赎回费 管理费 托管费 销售服务费 基金涉及的费用主要包含认购费、申购费、赎回费、管理费、托管费和销售服务费。其中,认购费、申购费和赎回费是投资者进行相应交...

osc_tc6nsv9u
2018/06/09
2
0
awk

目录:

Ssyu
2018/04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

主机“ xxx.xx.xxx.xxx”不允许连接到该MySQL服务器

问题: This should be dead simple, but I cannot get it to work for the life of me. 这本来应该很简单,但是我无法让它在我的一生中发挥作用。 I'm just trying to connect remotely to......

技术盛宴
今天
14
0
Cocoa Autolayout:内容拥抱与内容压缩阻力优先

问题: I can't find a clear answer on Apple documentation regarding Cocoa Autolayout about the difference between content hugging and compression resistance. 关于Cocoa Autolayou......

javail
今天
24
0
OSChina 周二乱弹 —— 附近居民接连失踪,你们有什么头绪吗

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《伤离别(原版)》- 黄霑 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪维 :睡...

小小编辑
今天
44
1
IntelliJ IDEA 默认快捷键大全

Remember these Shortcuts 常用 功能 快捷键 备注 ● Smart code completion Ctrl + Shift + Space - ● Search everywhere Double Shift - ● Show intention actions and quick-fixes Alt......

巨輪
今天
30
0
Hacker News 简讯 2020-07-14

更新时间: 2020-07-14 04:01 Bitcoin is more like ham radio than the early internet - (jpkoning.blogspot.com) 比特币更像是火腿收音机,而不是早期的互联网 得分:159 | 评论:140 Chipma......

FalconChen
今天
136
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部