spark SQL学习(案例-统计每日销售)

spark 统计,排序 在xshell里面创建一个文件,并且上传(a,b,c,d)代表的是玩家,(r1,r2,r3)代表的是区,数字代表花的钱数上传文件,(文件的名字叫wagzhe)打开文件,转成RDD模式,然后输出一下看看是否正确输出结果:统计一下每个区转了多少钱(每个人花了多少钱和这个例子一样就是把玩家作为键 把钱数作为值)先用map(lambda x:x.split(","))给它拆分开,拆分后的样式就是[(a,r... 阅读详情

 

需求:统计每日销售额


package wujiadong_sparkSQL


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

/**
  * Created by Administrator on 2017/3/6.
  */
object DailySale {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("dailysale").setMaster("local")
    val sc = new SparkContext(conf)
    val sqlContext = new SQLContext(sc)
    import sqlContext.implicits._
    //模拟数据
    val userSalelog = Array(
      "2017-02-01,55,1122",
      "2017-02-01,23,1133",
      "2017-02-01,15,",
      "2017-02-02,56,1155",
      "2017-02-01,78,1123",
      "2017-02-01,113,1144"
    )

    val userSalelogRDD = sc.parallelize(userSalelog,2)
    val filteredUserRDD = userSalelogRDD.filter(log => if(log.split(",").length == 3) true else false)
    val RowRDD = filteredUserRDD.map(log => Row(log.split(",")(0),log.split(",")(1).toInt,log.split(",")(2).toInt))
    val schema = StructType(
      Array(
        StructField("date",StringType,true),
        StructField("sale_amount",IntegerType,true),
        StructField("userid",IntegerType,true)
      )
    )

    val df = sqlContext.createDataFrame(RowRDD,schema)

    df.groupBy("date")
      .agg('date,sum('sale_amount))
      .map(row => Row(Row(row(0),row(2))))
      .collect()
      .foreach(println)


  }

}

运行结果


hadoop@master:~/wujiadong$ spark-submit --class wujiadong_sparkSQL.DailySale  --executor-memory 500m --total-executor-cores 2 /home/hadoop/wujiadong/wujiadong.spark.jar
17/03/06 20:55:20 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/03/06 20:55:21 WARN SparkConf: 
SPARK_CLASSPATH was detected (set to ':/home/hadoop/bigdata/hive/lib/mysql-connector-java-5.1.26-bin.jar').
This is deprecated in Spark 1.0+.

Please instead use:
 - ./spark-submit with --driver-class-path to augment the driver classpath
 - spark.executor.extraClassPath to augment the executor classpath
        
17/03/06 20:55:21 WARN SparkConf: Setting 'spark.executor.extraClassPath' to ':/home/hadoop/bigdata/hive/lib/mysql-connector-java-5.1.26-bin.jar' as a work-around.
17/03/06 20:55:21 WARN SparkConf: Setting 'spark.driver.extraClassPath' to ':/home/hadoop/bigdata/hive/lib/mysql-connector-java-5.1.26-bin.jar' as a work-around.
17/03/06 20:55:23 INFO Slf4jLogger: Slf4jLogger started
17/03/06 20:55:23 INFO Remoting: Starting remoting
17/03/06 20:55:24 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sparkDriver@192.168.1.131:58765]
17/03/06 20:55:25 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
17/03/06 20:55:26 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
[[2017-02-01,269]]                                                              
[[2017-02-02,56]]
17/03/06 20:55:51 INFO RemoteActorRefProvider$RemotingTerminator: Shutting down remote daemon.
17/03/06 20:55:51 INFO RemoteActorRefProvider$RemotingTerminator: Remote daemon shut down; proceeding with flushing remote transports.

分类: Spark

好文要顶 关注我 收藏该文  

邬家栋
关注 - 10
粉丝 - 7

+加关注

0

0

« 上一篇:spark SQL学习(案例-统计每日uv)
» 下一篇:spark SQL学习(认识spark SQL)

Spark SQL之内置函数 目录 一:DataFrame的内置函数作用 二:DataFram的的内置函数等 三:案例实战 四:混合函数 一:DataFrame的内置函数作用 DataFrame的函数并会执行后立即返回一个结果值,而是返回一个Column对象,用于在并行作业中进行求值 Column可以用在DataFrame的操作之中,比如select,filter,groupBy等。函数的输入值,也可以是C... 阅读详情

相关推荐

基于Spark的网上商城用户行为分析

实验室名称: 大数据实验教学系统实验项目名称: 案例:网上商城用户行为分析某大型电商网站收集有用户在2014年购物行为数据,包含了300000条数据记录。现希望大数据分析团队使用Spark技术对这些数据进行分析,以期获得有价值的信息。本案例用到的数据集说明如下:   数据集文件:/data/dataset/batch/user_action.csv   该数据来源于某电商网站的用户在2014年购物行为数据,包含了300000条数据记录。 三、操作步骤 阶段一、启动HDFS、Spark集群服务和zeppeli

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 3703

【Spark】Spark电商数据分析

Spark电商数据分析数据展示与分析需求:Top10 热门品类需求分析实现方法一实现方法二实现方法三实现方法四需求:Top10 热门品类中每个品类的 Top10 活跃 Session 统计需求:页面单跳统计什么是页面单跳统计页面单跳的意义 数据展示与分析 上面的数据图是从数据文件中截取的一部分内容,表示为电商网站的用户行为数据,主要包含用户的 4 种行为:搜索,点击,下单,支付。数据规则如下: ➢ 数据文件中每行数据采用下划线分隔数据 ➢ 每一行数据表示用户的一次行为,这个行为只能是 4 种行为的一种.

HR的博客 4154

spark SQL应用解析

学习sparkSQL详细解析,SparkSQL实现功能,代码实例练习,以及实战, 计算所有订单中每年的销售总数、销售总额 计算所有订单每年最大金额订单的销售额 计算所有订单中每年最畅销货品

SparkSQL的编程题

数据如下: 代码: ​ (2)使用编程方式定义RDD模式,提取月、市、区县、品牌、车辆类型、使用性质和数量7列,并定义相应Schema; ​ (3)将(2)的结果以json格式保存至HDFS; ​ (4)读取该json文件,构建DataFrame; ​ (5)在DataFrame中使用SQL语句实现如下查询:​ ① 统计各汽车品牌的销量,并按销量从高到低排序; ​ ② 统计各月各汽车品牌的销量; ​ ③ 统计各市的汽车销量,并按销量

m0_55834564的博客 1058

crontab shell调用spark-sql,实现周期性动态SQL批量自动执行.rar

对于熟悉Scala开发的人来说,对于spark-sql的使用,直接jar包中写入代码处理就能轻松实现动态语句的执行。 但是对于我,不打算学习Scala和Java语言,但是又想定时执行时间推延的周期、定时任务,该肿么办? spark-sql CLI几个参数,完全满足我等非专业人员。

SparkSql实现小案例——代码部分(一)

一、案例介绍 案例包含三个表:tbDate、tbStock、tbStockDetail。字段信息如下表: 二、要求 1、计算所有订单中每年的销售单数、销售总额 2、计算所有订单每年最大金额订单的销售额 3、计算所有订单中每年最畅销货品 三、代码 case class tbStock(ordernumber:String,locationid:String,dateid:String) extends Serializable case class tbStockDetail(ordernumber:String, rownum:Int, itemid:String, number:Int,

销售人员日常销售记录mysql_spark SQL学习(案例-统计每日销售)

需求:统计每日销售额package wujiadong_sparkSQLimport org.apache.spark.sql.types._import org.apache.spark.sql.{Row, SQLContext}import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.functio...

weixin_42117037的博客 355

MiniMax H3本地部署与ComfyUI集成实战:从环境配置到提示词优化

文本到视频生成是AI内容创作领域的关键技术,它基于扩散模型等深度学习原理,将自然语言描述转化为连贯的动态视觉序列。这项技术的核心价值在于大幅降低了视频制作的门槛,为短视频创作、概念可视化、教育内容生成等场景提供了高效工具。在实际工程实践中,成功部署和运行此类模型,如近期备受关注的MiniMax H3,需要精准处理环境配置、显存优化和提示词工程等环节。其中,解决“CUDA error: no kernel image is available”等版本兼容性问题,以及针对“8G显存”等有限资源进行参数调优,是确

weixin_33674976的博客 479

10.Spark SQL:销售额统计案例实战

SparkSQL内置函数以及每日UV销售额统计案例实战 java版本: java版本: package cn.spark.study.sql; import java.util.Arrays; import java.util.List; import org.apache.spark.SparkConf; import org.apache.spark.api.java.Jav

认知 行动 坚持 1959

用Seurat和ComplexHeatmap绘制单细胞marker基因热图:从数据处理到可视化全流程

本文详细介绍了使用Seurat和ComplexHeatmap绘制单细胞marker基因热图的全流程,涵盖从数据处理、基因筛选、平均表达矩阵计算到高级可视化与注释添加。重点解析了如何利用ComplexHeatmap生成发表级热图,并整合热词信息,解决单细胞数据可视化中的常见问题,提升科研图表质量。

weixin_29048775的博客 531

一文详解声码器

声码器(Vocoder)是语音信号处理领域的核心技术,其本质是通过“分析 - 参数化 - 合成” 的闭环流程,实现语音的高效编码、转换或生成。它不仅是早期语音通信的关键工具,更是现代 AI 语音技术(如 TTS、语音转换)的核心组件。以下从原理、技术分类、关键模块、应用及发展趋势展开详细解析。

weixin_41413777的博客 1356

72、Spark SQL之内置函数以及每日uv、销售额统计案例实战

Spark 1.5.x版本引入的内置函数 在Spark 1.5.x版本,增加了一系列内置函数到DataFrame API中,并且实现了code-generation的优化。与普通的函数不同,DataFrame的函数并不会执行后立即返回一个结果值,而是返回一个Column对象,用于在并行作业中进行求值。Column可以用在DataFrame的操作之中,比如select,filter,groupBy...

ZJ__ZFH的博客 1688

如何利用三阈值游程理论识别干旱事件_python

如果当前时间点与上一个干旱事件的结束位置相隔不超过一个月(`index - current_event['end_index']

weixin_44259522的博客 1947

Spark-SQL 案例(scala)

文章目录1.SparkSQLIDE开发pom.xml文件配置添加连接SparkSession 1.SparkSQL IDE开发 pom.xml文件配置添加 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11...

weixin_43866666的博客 783

利用AI辅助工具Codex在30分钟内高效生成发明专利说明书草案

Codex 是什么?简单说,它是 OpenAI 推出的一个高级 AI 工作平台,最初定位是软件开发辅助工具,但现在它的能力边界已经远远超出了写代码。根据 OpenAI 官方信息,每周有超过 500 万人使用 Codex,其中 40% 的新用户是非开发者,包括分析师、营销人员、研究人员等。这意味着 Codex 正在从一个程序员专属工具,演变为一个面向广泛知识工作者的生产力中枢。 那么,它和我们今天要谈的“写发明专利”有什么关系?核心在于 Codex 的“角色专属插件”和“上下文构建”能力。它不再只是根据零散的

weixin_29053067的博客 321

AT32串口打印全攻略:从零搭建到printf重定向(GCC版)

本文详细介绍了在GCC编译环境下为AT32系列MCU实现串口打印与printf重定向的完整方案。针对从Keil MDK迁移到GCC工具链时常见的串口无输出问题,文章从环境搭建、USART配置入手,重点剖析了GCC下printf重定向的核心原理——通过重写_write()函数,并提供了经过验证的代码实现、常见问题排查及性能优化建议。

weixin_29163797的博客 265

73、Spark SQL之开窗函数以及top3销售额统计案例实战

开窗函数以及top3销售额统计案例实战 Spark 1.4.x版本以后,为Spark SQL和DataFrame引入了开窗函数,比如最经典,最常用的,row_number(),可以让我们实现分组取topn的逻辑。 案例:统计每个种类的销售额排名前3的产品 先说明一下,row_number()开窗函数的作用 其实,就是给每个分组的数据,按照其排序顺序,打上一个分组内的行号 比如说,有一个分组d...

ZJ__ZFH的博客 1906

[系统安全] 四十七.恶意软件分析 (3)动态分析经典沙箱Cape的安装和基础用法详解

系统安全将更好地帮助初学者了解病毒逆向分析和系统安全。前文详细介绍恶意代码静态分析经典工具Capa的基础用法,以及批量提取静态特征和ATT&CK技战术,主要是从提取的静态特征Json文件中提取关键特征。这篇文章将详细讲解动态分析沙箱Cape,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。本文先介绍Cape沙箱的安装和基础用法,后续随着深入再分享。基础性文章,希望对您有帮助!

杨秀璋的专栏 6739

spark从入门到放弃三十六:Spark Sql(9)根据日志统计用户销售额

文章地址:http://www.haha174.top/article/details/255625 主要实现三个功能 1.统计用户的销售额 2.统计每日的销售额 2.统计每个用户每日的销售额 object DailySale { def main(args: Array[String]): Unit = { val conf=new SparkConf().setAppNa...

u012957549的博客 3613

手把手教你学Simulink--基于Simulink的高速公路自动驾驶场景仿真建模

特点车道保持:自动调整车辆方向以保持在车道中央。自适应巡航控制(ACC):根据前方车辆的速度自动调节车速。换道辅助:安全地变换车道以超过慢速行驶的车辆或准备驶离高速公路。紧急制动:检测潜在碰撞并采取措施避免事故。挑战安全性:确保所有功能在各种条件下都能可靠运行。实时性:处理大量传感器数据,并迅速做出反应。复杂性:集成多个子系统,包括感知、规划与控制。首先明确要模拟的任务内容。车辆需保持在车道内行驶。根据交通情况自动调整速度。安全地执行换道操作。在必要时实施紧急制动。

MHD0815的博客 248

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【大数据开发】SparkSQL——SparkSQL统计每一天的销售额

文章目录一、 统计每一天的销售额(DSL风格)二、 一、 统计每一天的销售额(DSL风格) 需求: 数据源(时间,销售金额,用户ID) 在这个数据源中有不完整的记录,过滤掉这些数据 统计每一天的销售额(DSL风格) import org.apache.spark.rdd.RDD import org.apache.spark.sql.functions.sum import org.apache.spark.sql.{DataFrame, SparkSession} object _01_Exercise

白色风车 1045

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spark 成长:Spark SQL 数据分析实战的 6 个高频场景(附数据清洗案例)

处理自定义逻辑,如复杂字符串处理或数学计算。Spark SQL 支持 UDFs 扩展功能,在数据清洗和特征工程中常见。应用示例:UDF 可定义为 $f(x) = \text{len}(x)$。

2501_93895250的博客 998

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

基于Hadoop+Spark的优衣库销售数据分析系统

基于Hadoop+Spark的优衣库销售数据分析系统

计算机编程小央姐的博客 803

【数仓统计】Spark hive SQL 统计数据分析一文全理解

计算每个品牌总的打折销售天数,注意其中的交叉日期,比如 vivo 品牌,第一次活动时间为 2021-06-05 到 2021-06-15,第二次活动时间为 2021-06-09 到 2021-06-21 其中 9 号到 15号为重复天数,只统计一次,即 vivo 总打折天数为 2021-06-05 到 2021-06-21 共计 17 天。对框架底层有体系化的了解,熟悉或精读某个框架模块的源码,例如Spark AQE,要了解如何评估倾斜键,以及决策异常如何解决,是否有升级空间,如何给开源贡献代码;

元星的博客,一起努力呀 760
上一篇: spark SQL学习(spark连接 mysql)
下一篇: spark SQL学习(案例-统计每日uv)
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值