新用户注册入口 老用户登录入口

[转载]任务三:指标计算

文章作者:转载 更新时间:2023-09-01 10:55:33 阅读数量:318
文章标签:数据统计订单数量下单总金额国家地区统计月份维度数据导入导出
本文摘要:本文介绍了如何使用Scala编写Spark SQL代码,根据数据仓库层表统计每个国家、地区以及每个月的订单数量和总金额,并将结果存入MySQL数据库shtd_store中的nationeverymonth表。通过Spark SQL进行复杂查询与聚合操作后,进一步将处理后的数据导入MySQL中。同时,文章还涉及到了计算某年各国平均消费额并与其他所有国家平均消费额进行比较的过程,结果存储在MySQL的nationavgcmp表中。整个过程涵盖了从数据统计、维度分析到跨系统数据迁移的关键技术环节。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/guo_0423/article/details/126352162。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

        1. 编写Scala工程代码,根据dwd层表统计每个地区、每个国家、每个月下单的数量和下单的总金额,存入MySQL数据库shtd_store的nationeverymonth表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;

spark.sql("select  nationkey,regexp_replace(nationname,'\'','') as nationname,regionkey,regexp_replace(regionname,'\'','') as regionname,sum(totalnum) as totalorder,sum(totalprice) as totalconsumption,year,month from nationeverymonth group by nationkey,regionkey,month,nationname,year,regionname;")

我为了方便查询和之后的操作,将上面的查询结果导入到新表nationeverymonths

查表

 接下来将hive中的数据导入mysql中

package com.atguigu.spark.sql
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSessionimport java.util.Properties
object DataHiveToMySQL {def main(args: Array[String]): Unit = {val sparkConf = new SparkConf().setMaster("local[*]").setAppName("sparkSQL")val spark = SparkSession.builder().enableHiveSupport().config(sparkConf).getOrCreate()val result=spark.sql("select * from ods.nationeverymonths")val props=new Properties()props.setProperty("user","root")props.setProperty("password","123456")props.setProperty("driver","com.mysql.jdbc.Driver")result.write.mode("overwrite").jdbc("jdbc:mysql://192.168.230.132:3306/user?serverTimezone=UTC&characterEncoding=UTF-8&useSSL=false", "nationeverymonth", props)println("导入成功")spark.stop()} }

运行可见导入成功

进入MySQL中查看结果

 可见数据成功导入

接下来按照要求查询: 

        

        2.请根据dwd层表计算出某年每个国家的平均消费额和所有国家平均消费额相比较结果(“高/低/相同”),存入MySQL数据库shtd_store的nationavgcmp表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;

在解这道题的时候遇见一个问题,在求所有国家平均消费额的时候一直报错,由于没有数据这道题的题意还是有点没看明白,于是我就用了最简单的办法先新增一列,再单独将所有国家平均消费额求出来然后再插入,如果各位大佬有解决这个问题的办法希望能指导一下

先将每个国家的平均消费额求出来

 

spark.sql("select nationkey,nationname,avg(totalconsumption) as nationavgconsumption from nationeverymonths group by nationkey,nationname")

 再新增一列所有国家平均消费额

spark.sql("alter table nationeverymonths add columns(avg_allstring)")

再将查询到的所有国家平均消费额导入进去

spark.sql("insert overwrite table nationeverymonths1 select nationkey,nationname,avg_totalconsumpt,1500 from nationeverymonths1")

再次查表

 按照题意添加比较结果字段

spark.sql("select *,case when avg_totalconsumpt>avg_all then '高' when avg_totalconsumpt<avg_all then '低' when avg_totalconsumpt=avg_all then '相同' else 'null' end as comparison from nationeverymonths1").show

最后的排序语句和题一一样

本篇文章为转载内容。原文链接:https://blog.csdn.net/guo_0423/article/details/126352162。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
数据仓库dwd层表在大数据领域,数据仓库(Data Warehouse)是一种用于报告和数据分析的系统,其中的数据是从不同源系统收集并经过集成、清理后的历史数据。dwd层是数据仓库的一种分层设计中的明细层(Detail Layer),全称为“明细宽表层”。它通常存储原始业务数据的明细记录,为后续的数据分析提供基础支撑,特点是保持原始数据的粒度,不做任何聚合处理,以便于进行多维度的统计分析。
Spark SQLSpark SQL是Apache Spark项目中的一部分,它将SQL查询能力与Spark的分布式计算框架相结合,使得用户能够通过标准的SQL语句或者DataFrame API对大规模数据集进行操作。Spark SQL不仅可以处理结构化数据,还能无缝对接Hive表和其他外部数据源,实现复杂的数据处理任务,如过滤、排序、聚合等,并支持将结果写入多种数据库系统,包括MySQL。
MySQL数据库shtd_storeMySQL是一个开源的关系型数据库管理系统,广泛应用于Web应用开发。在本文的上下文中,“MySQL数据库shtd_store”指的是作者在MySQL服务器上创建的一个特定的数据库实例,名为“shtd_store”,用于存储从数据仓库中导出的统计结果数据,如国家地区每月下单数量及总金额等信息。MySQL因其稳定、高效、易于管理的特点,常被选为数据仓库下游存储系统的组成部分之一,以支持OLAP在线分析处理场景的需求。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入理解了如何使用Scala编写Spark SQL代码进行复杂的数据统计分析并将结果导入MySQL数据库后,进一步的延伸阅读可以关注以下内容:
近年来,随着大数据技术的快速发展,Apache Spark作为一款高效、通用的大数据处理引擎,其在实时流处理、机器学习、SQL查询等方面展现出了强大的性能。据Databricks公司(Spark的主要贡献者)最新发布的博客,Apache Spark 3.2版本引入了一系列优化和新特性,比如对动态分区剪枝的改进、对Catalyst查询优化器的增强以及对Structured Streaming功能的扩展,这些都将为数据分析工作者提供更加强大且易用的工具。
与此同时,跨系统数据迁移与整合也是现代企业数据架构中的关键环节。近期,业界领先的云服务商如AWS、阿里云等相继推出了基于Spark的无缝数据集成服务,支持从Hadoop、MySQL等多种数据源到目标数据库的高效迁移,同时强化了数据转换、清洗以及合规性检查等功能,使得在整个数据生命周期管理中,数据工程师能够更加便捷地实现异构数据源之间的同步与融合。
此外,针对电商领域的数据分析实战,可参考某电商平台公开的年度报告,了解其如何运用Spark SQL结合各类大数据技术挖掘用户行为模式、预测销售趋势,并依据地区、时间等维度精细化运营策略,从而提升整体业务表现。这将有助于读者对照实际案例,深化对文中所述统计分析方法在实际场景中的应用理解。
综上所述,紧跟大数据技术和应用的发展趋势,持续探索Spark SQL在数据处理及跨系统迁移方面的最佳实践,结合行业实例深入解析,将助力我们更好地应对日益增长的数据挑战,为企业决策提供强有力的数据支撑。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
chmod u+x,g-w,o-r file - 修改文件权限为:用户可执行、组无写入、其他无读取。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
数据库事务提交失败:数据同步中网络连接与资源管理问题分析 02-04 Kiali驱动的Kubernetes管理:云原生时代下的微服务环境可视化监控与操作实践 09-05 实用输入域表情符号选择器jQuery插件 01-06 Kubernetes (k8s) Namespace 中资源配额管理与CPU、内存优化配置实践 12-27 [转载]【总结】AWS的(助理)架构师认证体系详解 11-29 黑色奶茶饮料公司响应式模板下载 11-07 大气后台网站会员html登录页面模板 08-25 [转载]JeeWx捷微3.3 版本发布—JAVA开源微信管家 08-22 传智书城html代码 08-22 本次刷新还10个文章未展示,点击 更多查看。
Linux系统服务启动失败的精准排查:systemctl状态检查、配置文件审查与日志分析,解决依赖服务及资源限制问题 06-29 [转载]opendaylight-O版本与openstack集成 06-08 响应式商务礼品设计制造类企业前端模板下载 05-27 渐变大气后台管理系统响应式网站模板 05-23 [转载]清华都老师介绍windows下的mpich的经验 04-09 响应式化妆美容香水类企业前端CMS模板下载 03-16 vue响应回车 02-27 Maven依赖管理中Artifact无源码问题:从仓库获取sources.jar的解决方案与IDEA设置 01-31 蓝色宽屏公有云云计算公司网站模板 01-24 [转载]java getvalueat_Java swing jdbc:设置背景颜色,获取素材方法,表格,图片等的切换【诗书画唱】... 01-18 灰色网上产品销售商店HTML5模板 01-03
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"