需求
- 统计所有订单中每年的销售单数、销售总额
- 统计每年最大金额订单的销售额
- 统计每年最畅销货品(哪个货品销售额amount在当年最高,哪个就是最畅销货品)
我们首先需要在scala里连接hive,然后创建这三个表,导入数据。创建以及导入数据与操作Hive一致。在Spark SQL中,可以完全接管Hive,一切操作都可以在spark中实现。主要是将Hive的一个配置文件hive-site.xml导入到Spark的config配置中。
主要实现sql语句如下:
print("---------1、所有订单中每年的销售单数、销售总额------------")
spark.sql("select c.theyear,count(distinct a.ordernumber),sum(b.amount) " +
"from tbStock a join tbStockDetail b on a.ordernumber=b.ordernumber " +
"join tbDate c on a.dateid=c.dateid group by c.theyear order by c.theyear")
print("---------2.1、先求出每份订单的销售额以其发生时间----------")
spark.sql("select a.dateid,a.