有关蚂蚁森林植物申领统计题目(Hive 实例)

蚂蚁森林植物申领统计

创建两个表
user_low_carbon:记录了用户每天的蚂蚁森林低碳生活领取的记录流水
plant_carbon:蚂蚁森林植物换购表,用于记录申领环保植物所需要减少的碳排放量

表结构

表一
table_name:user_low_carbon
user_id data_dt low_carbon
用户 日期 领取碳排放(g)
表二
table_name: plant_carbon
plant_id plant_name low_carbon
植物编号 植物名 换购植物所需要的碳

表一

create table if not exists user_low_carbon(user_id string,date_dt string,low_carbon int)
row format delimited fields terminated by ' '

表二

create table if not exists user_low_carbon(user_id string,date_dt string,low_carbon int)
row format delimited fields terminated by ' '

导入数据
//user_low_carbon.txt

u_001 2017/1/1 10
u_001 2017/1/2 150
u_001 2017/1/2 110
u_001 2017/1/2 10
u_001 2017/1/4 50
u_001 2017/1/4 10
u_001 2017/1/6 45
u_001 2017/1/6 90
u_002 2017/1/1 10
u_002 2017/1/2 150
u_002 2017/1/2 70
u_002 2017/1/3 30
u_002 2017/1/3 80
u_002 2017/1/4 150
u_002 2017/1/5 101
u_002 2017/1/6 68
......
load data local inpath '/home/dt/user_low_carbon.txt' into table user_low_carbon

//plant_carbon.txt

p001 梭梭树 17
p002 沙柳 19
p003 樟子树 146
p004 胡杨 215
LOAD DATA LOCAL INPATH '/home/dt/plant_carbon.txt' INTO TABLE plant_carbon

题目一

问题:假设2017年1月1日开始记录低碳数据(user_low_carbon),假设2017年10月1日之前满足申领条件的用户都申领了一颗p004-胡杨,
剩余的能量全部用来领取“p002-沙柳” 。
统计在10月1日累计申领“p002-沙柳” 排名前10的用户信息;以及他比后一名多领了几颗沙柳。
得到的统计结果如下表样式:

结果示例

user_id  plant_count less_count(比后一名多领了几颗沙柳)
u_101    1000         100
u_088    900          400
u_103    500

sql语句

from(
select t3.user_id user_id,floor(t3.residue/t4.low_carbon) as shaliunum
from (
select t1.user_id,t1.sumres-t2.low_carbon as residue
from (SELECT a.user_id,sum(a.low_carbon) as sumres
-- OVER(PARTITION BY a.user_id) 
from user_low_carbon a
group by a.user_id) as t1,(select low_carbon
from plant_ca
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,这是一个具体的课程设计问题,需要详细的思路和步骤,我会尽力回答。 首先,我们需要准备好相关的数据源,包括汽车销售数据和市区县信息数据。可以将数据存储在 Hive 中,使用 HiveQL 进行数据处理和分析。 接下来,我们需要对数据进行清洗和预处理,包括数据去重、缺失值处理、数据格式转换等。可以使用 HiveQL 中的各种函数和操作符进行处理。 然后,我们需要对数据进行分析,统计某个月份各市区县的汽车销售数量。可以使用 HiveQL 中的 GROUP BY、SUM、COUNT 等聚合函数进行统计。 最后,我们可以将结果保存到 Hive 中的新表中,方便后续的查询和分析。 具体的步骤如下: 1. 准备数据源 将汽车销售数据和市区县信息数据存储在 Hive 中的两个表中,可以使用 CREATE TABLE 语句创建表,使用 LOAD DATA INPATH 语句加载数据。 2. 数据清洗和预处理 使用 HiveQL 中的各种函数和操作符,对数据进行清洗和预处理,比如使用 DISTINCT 关键字去重,使用 COALESCE 函数处理缺失值,使用 CAST 函数进行数据格式转换等。 3. 数据分析 使用 HiveQL 中的 GROUP BY、SUM、COUNT 等聚合函数,对数据进行分析,统计某个月份各市区县的汽车销售数量。比如: ``` SELECT city, district, SUM(sales) AS total_sales FROM sales_data WHERE month = '2021-01' GROUP BY city, district; ``` 4. 结果保存 将分析结果保存到 Hive 中的新表中,可以使用 CREATE TABLE AS SELECT 语句,比如: ``` CREATE TABLE sales_by_district AS SELECT city, district, SUM(sales) AS total_sales FROM sales_data WHERE month = '2021-01' GROUP BY city, district; ``` 这样就完成了统计某个月份各市区县的汽车销售数量的课程设计。当然,具体的实现还需要根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值