网站制作专业的公司,wordpress显示登录注册,新站如何让百度快速收录,wordpress 轮播广告文章目录 hive分析汇总互联网日志分析1.项目需求2.数据说明3.算法思路 用户电影推荐1.项目需求2.数据说明3.算法思路4.解题步骤 简单数据统计WordCount数据说明 疫情数据分析1.项目需求2.数据说明step1:创建ods层数据表step2#xff1a;创建dwd层数据表step3#xff1a;创建d… 文章目录 hive分析汇总互联网日志分析1.项目需求2.数据说明3.算法思路 用户电影推荐1.项目需求2.数据说明3.算法思路4.解题步骤 简单数据统计WordCount数据说明 疫情数据分析1.项目需求2.数据说明step1:创建ods层数据表step2创建dwd层数据表step3创建dwm数据处理分析step4创建dws层step5创建app层其他参考设置 交通事故因素分析1.项目需求2.数据说明3.分析思路 网络诈骗1.项目需求2.数据说明3.关联规则 人口收入数据分析1.项目需求2.Hive安全配置 电商运营数据分析1.项目需求2.数据说明3.分析思路 贷款数据分析房屋租赁分析1.项目需求2.数据说明 共享单车数据分析1.项目需求题目说明提示 hive分析汇总
互联网日志分析
1.项目需求
随着计算机互联网技术的不断发展社会经济水平的不断提高各种通讯设备和移动工具的普及网络成为人们生活的必需品以某大型网站为例每小时就产生10G的数据量网络数据在飞速增长在大数据时代背景下需要对数据隐藏价值进行充分挖掘加强对数据的分析。 对这些数据进行有效利用需要通过大数据相关方面的技术和工具收集用户的习惯、风格等方面的数据对用户进行有效的分析对每个用户制定不同的平台营销与个性化服务。
2.数据说明
数据地址主机hadoop/Hive节点下/root/internetlogs/journal.log
日志分析数据每行记录有8部分组成访问者IP、访问名称、访问时间、访问资源、访问状态HTTP状态码、本次访问流量、链接访问源、浏览器信息。数据如下所示
194.237.142.21 - - [18/Sep/2013:06:49:18 0000] GET /wp-content/uploads/2013/07/rstudio-git3.png HTTP/1.1 304 0 - Mozilla/4.0 (compatible;)
183.49.46.228 - - [18/Sep/2013:06:49:23 0000] - 400 0 - -
163.177.71.12 - - [18/Sep/2013:06:49:33 0000] HEAD / HTTP/1.1 200 20 - DNSPod-Monitor/1.0
...3.算法思路
1页面访问量统计PV 网站网页的访问次数通过统计日志文件的每一行记录统计每一行日志的访问网站的资源路径为key相同的资源路径累加最后即可得到访问网站网页的访问次数。 需要统计的页面如下
/about
/black-ip-list/
/cassandra-clustor/
/finance-rhive-repurchase/
/hadoop-family-roadmap/
/hadoop-hive-intro/
/hadoop-zookeeper-intro/
/hadoop-mahout-roadmap/2页面独立IP的访问量统计IP 网站的独立IP的统计是根据日志文件中每一条日志信息中访问资源的ip的个数进行统计的。以资源路径为key不同的IP值进行累加即可得出结果。 实例说明1.80.249.223 1表示此IP访问量为1。 3每小时访问网站的次数统计(time) 每小时访问网站的次数统计是以每小时时间为key每小时时间段内的访问次数进行累加即可得到结果。 实例说明2013091806 111表示2013年9月18号6点(含)到7点(不含)之间的访问量为111。 4访问网站的浏览器标识统计(browser) 将记录客户浏览器的相关信息作为key对不同的浏览器进行累加求和。 提示数据中记录客户浏览器的相关信息(http_ser_agent),user-agent中文名为用户代理简称 UA它是一个特殊字符串头使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。一些网站常常通过判断UA来给不同的操作系统、不同的浏览器发送不同的页面因此可能造成某些页面无法在某个浏览器中正常显示但通过伪装UA可以绕过检测。 标准格式为 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息但是不同的浏览器的格式是不同的大体都包括这些内容 实例数据Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36
1.本次环境版本为Hadoop2.7.7对应eclips插件存放于云主机master:/usr/package277/中。 2.本机映射名为hadoop000云主机Hadoop/Hive的hosts文件中IP需要修改为内网IP需要修改为实际内网IP服务器地址有内外网之分本地eclipse所在主机需要使用外网IP设置映射 Linux/Mac系统下文件地址/etc/hosts Windows系统下文件地址C:\Windows\System32\drivers\etc\hosts 2.云主机搭建的Hadoop集群集群之间通过内网通信本地eclipse开发工具需要使用域名进行访问。
Hadoop配置文件是以内网IP作为机器间通信的IP。在这种情况下,我们能够访问到namenode机器namenode会给我们数据所在机器的IP地址供我们访问数据传输服务但是当写数据的时候NameNode和DataNode是通过内网通信的返回的是datanode内网的IP,我们无法根据该IP访问datanode服务器。将默认的通过IP访问改为通过域名方式访问。
// 使用hdfs的fs功能客户端就会访问core-site.xml配置文件
// 设置客户端访问datanode使用hostname来进行访问
conf.set(dfs.client.use.datanode.hostname, true);
// 设置core-site.xml中的属性fs.defaultFS和属性值注意主机名必须和设置的hosts主机名一致
conf.set(fs.defaultFS,hdfs://hadoop000:9000);考核条件如下 :
将本地数据/root/internetlogs/journal.log上传至HDFS文件系统/input/下注意自行创建目录。
操作环境Hadoop/Hive
编写程序进行页面访问量统计结果保存至本地/root/internetlogs/pv/目录下part-00000文件中。
操作环境Hadoop/Hive 参考代码【可完整实现通过】
package org.example;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;public class PV {public static class PVMapper extends MapperLongWritable, Text, Text, IntWritable {public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {// 将日志行转换为字符串String line value.toString();// 按照双引号分割行以提取请求部分String[] parts line.split(\);if (parts.length 1) {// 获取请求行通常是在第二个部分String requestLine parts[1];// 分割请求行以提取 HTTP 方法和资源路径String[] requestParts requestLine.split( );// 检查请求部分长度确保它包含方法和资源路径if (requestParts.length 1) {String resourcePath requestParts[1];// 过滤需要的页面if (resourcePath.matches(/about|/black-ip-list/|/cassandra-clustor/|/finance-rhive-repurchase/|/hadoop-family-roadmap/|/hadoop-hive-intro/|/hadoop-zookeeper-intro/|/hadoop-mahout-roadmap/)) {context.write(new Text(resourcePath), new IntWritable(1));}} else {// 如果请求行格式不正确可以记录或处理错误System.err.println(无效的请求行: requestLine);}} else {// 如果行格式不正确可以记录或处理错误System.err.println(无效的日志行: line);}}}public static class PVReducer extends ReducerText, IntWritable, Text, IntWritable {private IntWritable result new IntWritable();public void reduce(Text key, IterableIntWritable values, Context context) throws IOException, InterruptedException {int sum 0;for (IntWritable val : values) {sum val.get();}result.set(sum);context.write(key, result);}}public static void main(String[] args) throws Exception {Configuration conf new Configuration();//conf.set(fs.defaultFS, hdfs://localhost:9000);Job job Job.getInstance(conf, Page Views Count);job.setJarByClass(PV.class);job.setMapperClass(PVMapper.class);job.setReducerClass(PVReducer.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);Path outpath new Path(/E:/AUST/wrpv);FileSystem fs FileSystem.get(conf);if(fs.exists(outpath)){fs.delete(outpath);}FileInputFormat.addInputPath(job, new Path(/E:/AUST/journal.log));FileOutputFormat.setOutputPath(job, outpath);boolean flag job.waitForCompletion(true);if(flag){System.out.println(success!);}else{System.out.println(error!);}}
}
以上代码是在本地hadoop环境运行若要虚拟机环境下运行需多加设置。
编写程序进行页面独立IP的访问量统计结果保存至本地/root/internetlogs/ip/目录下part-00000文件中例如1.80.249.223 1表示此IP访问量为1
操作环境Hadoop/Hive
参考代码【可完整实现通过】
package org.example;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;public class IP {public static class IPMapper extends MapperLongWritable, Text, Text, IntWritable {Overrideprotected void map(LongWritable key, Text value, Mapper.Context context)throws IOException, InterruptedException {// 日志记录的拆分String[] fields value.toString().split( );if (fields.length 0) {String ipAddress fields[0];// 以IP为key1为value输出context.write(new Text(ipAddress), new IntWritable(1));}}}public static class IPReducer extends ReducerText, IntWritable, Text, IntWritable {Overrideprotected void reduce(Text key, IterableIntWritable values, Context context)throws IOException, InterruptedException {int sum 0;// 累加每个IP的访问次数for (IntWritable val : values) {sum val.get();}// 输出IP和总访问次数context.write(key, new IntWritable(sum));}}public static void main(String[] args) throws Exception {Configuration conf new Configuration();Job job Job.getInstance(conf, IP Access Count);job.setJarByClass(IP.class);job.setMapperClass(IPMapper.class);job.setReducerClass(IPReducer.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);Path outpath new Path(/E:/AUST/wrip);FileSystem fs FileSystem.get(conf);if(fs.exists(outpath)){fs.delete(outpath);}FileInputFormat.addInputPath(job, new Path(/E:/AUST/journal.log));FileOutputFormat.setOutputPath(job, outpath);boolean flag job.waitForCompletion(true);if(flag){System.out.println(success!);}else{System.out.println(error!);}}
}
编写程序进行每小时访问网站的次数统计结果保存至本地/root/internetlogs/time/目录下part-00000文件中
操作环境Hadoop/Hive
编写程序进行访问网站的浏览器标识统计结果保存至本地/root/internetlogs/browser/目录下part-00000文件中具体查看步骤说明
操作环境Hadoop/Hive
用户电影推荐
1.项目需求
随着互联网的急速发展网络中的信息量以指数规律迅速扩展和增加网络上的信息过载和信息迷航问题日益严重使得人们被动接受不喜欢的事物为解决这一问题推荐技术应运而生推荐系统通过预测用户对信息资源的喜好程度来进 行信息过滤根据用户具体需求通过协同过滤等技术进行个性化推荐。
基于物品的协同过滤ItemCF通过用户对于不同item的评分来预测item之间的相似性基于item之间的相似性最初推荐简单来说就是给用户推荐和他之前喜欢的物品相似的物品。 要求通过协同过滤算法itemCF针对用户评价电影的信息对用户信息进行训练计算出为每位用户推荐电影的分数进而进行电影推荐。
1计算物品之间的相似度。 2根据物品的相似度和用户的历史行为给用户生成推荐列表。
2.数据说明
数据地址主机hadoop/Hive节点下/root/movie/data.csv
推荐系统数据来源于某知名视频网站保存了大量的用户评分数据共有三列分别为用户Id电影Id评分rate评分区间0分数据如下
userId,movieId,rate
1,1,4
1,3,4
1,6,4
1,47,5
1,50,5
1,70,3
1,101,5
1,110,4
...3.算法思路
建立物品的同现矩阵。 2.建立用户对物品的评分矩阵。
3.矩阵计算推荐结果。公式同现矩阵*评分矩阵推荐结果
# 推荐结果示例
用户Id 电影Id推荐分数
1 68872,366.04.解题步骤
Step1-- 按用户分组计算所有物品出现的组合列表得到用户对物品的评分矩阵 map获取每一行数据将userId用户ID作为keymovieId “:” rate作为value。 reduce遍历结果集将每位用户对应的结果按“ “,”value ”拼接成一行数据输出。
# 样例数据注意排序方式
用户Id 电影Id评分...
1 70:3.0,110:4.0,151:5.0,...Step2–对itemID电影ID组合列表进行计数建立物品的同现矩阵 map 切分数据上步骤结果取出每位用户的movieId并进行循环匹配。 将movieId “:” movieId2作为key收集value记为 1。
reduce 遍历结果集按key进行分组求总和。
电影Id电影Id 总数
4720:2462 1Step3–对同现矩阵和评分矩阵进行转换
评分矩阵转换同现矩阵转换step2已完成将数据进行切分获取movieId对应的userId和rate;将movieId作为keyuserId“:”rate拼接作为value。将movieId:movieId2作为key总和作为value。电影id 用户id评分1 604:3.0电影id电影id 总数100044:100044 1
Step4–矩阵相乘
map 判断输入数据集是同现矩阵数据或者评分矩阵数据,同现矩阵需要进行封装 通过评分矩阵中的itemID遍历对应的同现矩阵itemID2以及总和num并计算num与评分rate的乘积 将userID作为keyItemID2 “,” rate * num拼接作为value
reduce 遍历结果集 将遍历结果放入Map集合 通过遍历集合获取itemID对应的总分score 收集结果集将userID作为keyitemID“,”score拼接作为value即按照用户分组求出对应推荐电影的总分情况。
1.本次环境版本为Hadoop2.7.7对应eclipse插件存放于云主机master:/usr/package277/中。 2.本机映射名为hadoop000云主机Hadoop/Hive的hosts文件中IP需要修改为内网IP需要修改为实际内网IP服务器地址有内外网之分本地eclipse所在主机需要使用外网IP设置映射 Linux/Mac系统下文件地址/etc/hosts Windows系统下文件地址C:\Windows\System32\drivers\etc\hosts 3.云主机搭建的Hadoop集群集群之间通过内网通信本地eclipse开发工具需要使用域名进行访问。
Hadoop配置文件是以内网IP作为机器间通信的IP。在这种情况下,我们能够访问到namenode机器namenode会给我们数据所在机器的IP地址供我们访问数据传输服务但是当写数据的时候NameNode和DataNode是通过内网通信的返回的是datanode内网的IP,我们无法根据该IP访问datanode服务器。将默认的通过IP访问改为通过域名方式访问。
// 使用hdfs的fs功能客户端就会访问core-site.xml配置文件
// 设置客户端访问datanode使用hostname来进行访问
conf.set(dfs.client.use.datanode.hostname, true);
// 设置core-site.xml中的属性fs.defaultFS和属性值注意主机名必须和设置的hosts主机名一致
conf.set(fs.defaultFS,hdfs://hadoop000:9000);考核条件如下 :
将本地数据/root/movie/data.csv上传至HDFS文件系统/input/下注意自行创建目录。
操作环境Hadoop/Hive
编写程序实现评分矩阵计算所有物品出现的组合列表结果保存至本地/root/movie/output1/目录下part-r-00000文件中
操作环境Hadoop/Hive
编写程序实现同现矩阵对电影ID循环匹配并进行计数结果保存至本地/root/movie/output2/目录下part-r-00000文件中
操作环境Hadoop/Hive
编写程序实现对评分矩阵的转换结果保存至本地/root/movie/output3_1/目录下part-r-00000文件中(0/ 20分)
操作环境Hadoop/Hive
编写程序实现对同现矩阵的转换(即读入output2结果)结果保存至本地/root/movie/output3_2/目录下part-r-00000文件中(0/ 10分)
操作环境Hadoop/Hive
编写程序实现矩阵相乘得到推荐结果结果保存至本地/root/movie/output4/目录下part-r-00000文件中(0/ 20分)
操作环境Hadoop/Hive
简单数据统计WordCount
单词计数是最简单也是最能体现MapReduce思想的程序之一可以称为MapReduce版Hello World该程序的完整代码可以在Hadoop安装包的src/examples目录下找到。 单词计数主要完成功能是统计一系列文本文件中每个单词出现的次数。
数据说明
数据sonnet.txt自动创建
Shakespeare Sonnet
Shall I compare thee to a summers day?
Thou art more lovely and more temperate:
Rough winds do shake the darling buds of May,
And summers lease hath all too short a date:
Sometime too hot the eye of heaven shines,
And often is his gold complexion dimmd;
And every fair from fair sometime declines,
By chance or natures changing course untrimmd
But thy eternal summer shall not fade
Nor lose possession of that fair thou owest;
Nor shall Death brag thou wanderst in his shade,
When in eternal lines to time thou growest:
So long as men can breathe or eyes can see,
So long lives this and this gives life to thee.考核条件如下 :
1.将数据sonnet.txt上传至HDFS文件系统/input/下注意自行创建目录。(0/ 10分)
操作环境Hadoop/Hive/Spark
2.编写程序或使用Hadoop自带的开源jar包对数据进行wordcount操作结果保存至hdfs:/output/part–r-00000(0/ 10分)
操作环境Hadoop/Hive/Spark
疫情数据分析
1.项目需求
自2019年底湖北省武汉市监测发现不明原因肺炎病例中国第一时间报告疫情迅速采取行动开展病因学和流行病学调查阻断疫情蔓延。 SARS-CoV-2是一种有着高扩散能力的病毒通过飞沫、直接接触和被感染的物体传播其潜伏时间为1到14天并且也由无症状感染者传播。大多数感染者仅表现出轻度至中度的呼吸道症状或根本不表现任何症状。只有5-10的感染者显示出完全的严重呼吸综合征称为冠状病毒病COVID-19能够人传人进而所引发的全球大流行疫情是全球自第二次世界大战以来面临的最严峻危机。截至目前全球已有200多个国家和地区累计报告超过2.1375亿确诊病例导致超过445万名患者死亡。 在此基础上大数据技术应用发挥出极大作用。通过城市监测接触者追踪疫苗接种等将我们的疫情信息进行传达。为政府正确决策、精准施策提供了科学依据。强化了政府对疫情物资生产、筹集、投放的科学管控手段。为医疗救治、“群防群控”防止疫情蔓延采取有效措施提供了科学数据和手段。科学分析预测疫情现状、趋势适时准确地根据疫情变化把握防疫重点。 本项目为新型冠状病毒COVID-19疫情状况的时间序列数据仓库选手可以通过对疫情历史数据的分析研究以更好的了解疫情与疫情的发展态势为抗击疫情之决策提供数据支持。
2.数据说明
数据/root/covid/covid_area.csv
数据截止到2021年9月全球确诊、感染、治愈、死亡人数地理信息包含地区、国家、省、市4级信息时间信息为年与日时分秒按照每个城市每天更新一次。 step1:创建ods层数据表
ods层是数据原始层只需将原始数据拉去过来即可ods层可以采用内部表EXTERNAL 修饰保证数据安全性。
数据库covid_ods 原始数据表covid_ods.covid
字段解释continerName大洲countryName国家provinceName省份province_confirm省份确诊人数province_suspect省份感染人数province_cured省份治愈人数province_dead省份死亡人数cityName城市/地区city_confirm城市确诊人数city_suspect城市感染人数city_cured城市治愈人数city_dead城市死亡人数updateTime数据更新时间
数据加工表covid_ods.covid_time
要求保留干净数据去重去空值、脏数据处理提取特征数据只保留每天最后更新的数据 特征数据包括省份城市/地区城市确诊城市感染城市治愈城市死亡数据更新时间 过滤重复值数据中有同一天获取的多次疫情信息根据时间只保留每天最后更新的数据 同时要求国家为中国省份不为中国过滤地区空值。
字段解释provinceName省份cityName城市/地区city_confirm城市确诊人数city_suspect城市感染人数city_cured城市治愈人数city_dead城市死亡人数updateTime数据更新时间
# 重复数据同一天多次更新的数据取每天最后更新的数据按照时间进行条件判断
亚洲,中国,福建省,1169,15,777,1,莆田,246,0,56,0,2021-09-20 19:14:20
亚洲,中国,福建省,1169,15,777,1,莆田,246,0,56,0,2021-09-20 18:54:20
亚洲,中国,福建省,1169,15,777,1,莆田,246,0,56,0,2021-09-20 09:50:20# 地区空值数据
亚洲,中国,台湾,40,0,12,1,,,,,,2020-03-02 09:10:02
亚洲,中国,香港,10,0,0,0,,,,,,2020-01-29 19:12:29step2创建dwd层数据表
在dwd层采用分区表将数据按照年/月维度进行分区存放以便在获取某月数据时可快速获取提高获取效率。在本层将获取想要的字段数据****对不规则数据做简单整理。
数据库covid_dwd
添加昨天时间列表province
指标城市累计确诊城市累计疑似城市累计治愈城市累计死亡。 维度省份城市时间更新时间updateTime以及时间的前一天yesterday。 分区年、月 思路将数据中的时间切割获取年月日并使用date_sub()函数获取昨天更新时间。
字段解释provinceName省份cityName城市/地区city_confirm城市确诊人数city_suspect城市感染人数city_cured城市治愈人数city_dead城市死亡人数updateTime数据更新时间yesterday昨天更新时间yearinfo年分区monthinfo月分区
step3创建dwm数据处理分析
统计每天各个省份中指标的增长量因此需要去获取前一天或者后一天的数据在本层将当天数据和前一天的数据进行汇总通过join方式将数据合并为一条数据。对四个指标数据进行类型转换转换为int类型在dws层将参与运算。
数据库covid_dwm
创建当日数据和后一天数据汇总数据表two_day
字段解释provinceName省份cityName城市/地区city_confirm城市确诊人数city_suspect城市感染人数city_cured城市治愈人数city_dead城市死亡人数updateTime更新时间city_confirm_before一天前城市确诊人数city_suspect_before一天前城市感染人数city_cured_before一天前城市治愈人数city_dead_before一天前城市死亡人数yesterday昨天更新时间yearinfo年分区monthinfo月分区
合并数据注意考虑时间问题。
step4创建dws层
在dwd层已经拿到前一天的数据在本层计算各个地区的指标增量计算方式为
每日指标增量前一天指标数据-今日指标数据
数据库covid_dws
单日指标正常量表covid_dws.day
字段解释provinceName省份cityName城市/地区new_city_confirm日确诊增长人数new_city_suspect日疑似增长人数new_city_cured日治愈增长人数new_city_dead日死亡增长人数updateTime更新时间yearinfo年分区monthinfo月分区
step5创建app层
针对疫情数据在app层再对维度进行上卷分析维度为各个省份每日的指标增量情况统计。
数据库covid_app
app层业务表covid_app.day_app
字段解释provinceName省份new_city_confirm日确诊增长人数new_city_suspect日疑似增长人数new_city_cured日治愈增长人数new_city_dead日死亡增长人数updateTime更新时间yearinfo年分区monthinfo月分区
其他参考设置
--动态分区配置
set hive.exec.dynamic.partitiontrue;
set hive.exec.dynamic.partition.modenonstrict;
set hive.exec.max.dynamic.partitions.pernode100000;
set hive.exec.max.dynamic.partitions100000;
set hive.exec.max.created.files100000;
--hive压缩
set hive.exec.compress.intermediatetrue;
set hive.exec.compress.outputtrue;
--写入时压缩生效
set hive.exec.orc.compression.strategyCOMPRESSION;
--本地模式
set hive.exec.mode.local.autotrue;
set mapreduce.map.memory.mb1025;
set mapreduce.reduce.memory.mb1025;
set hive.exec.mode.local.auto.input.files.max25;考核条件如下 :
进入hive客户端创建名为covid_ods的数据库用于存储原始数据
操作环境Hadoop/Hive/Spark
数据库covid_ods下创建covid表导入去除表头后的原始数据/root/covid/covid_area.csv文件名不变
操作环境Hadoop/Hive/Spark
数据库covid_ods下创建covid_time表用于提取有用数据过滤重复值只保留每天最后更新的数据具体参考步骤说明
操作环境Hadoop/Hive/Spark
按照要求向covid_ods.covid_time插入过滤后的数据
操作环境Hadoop/Hive/Spark
创建名为covid_dwd的数据库此层将数据进行分区便于数据的快速获取
操作环境Hadoop/Hive/Spark 数据库covid_dwd下创建province表按照年、月分区要求根据当天时间获取昨天对应时间列并插入对应数据具体要求查看步骤说明 操作环境Hadoop/Hive/Spark 创建名为covid_dwm的数据库用于统计每个省份的各指标增长量。
操作环境Hadoop/Hive/Spark
数据库covid_dwm下创建two_day表将province中当天数据和前一天的数据进行汇总通过join方式将数据合并为一条数据具体查看步骤说明
操作环境Hadoop/Hive/Spark
将表two_day中所有内容保存至云主机/root/covid/two_day.csv
操作环境Hadoop/Hive/Spark
将表two_day中所有内容保存至云主机/root/covid/two_day.csv
操作环境:Hadoop/Hive/Spark
数据库covid_dws下创建day表用于计算地区每日指标增量具体字段查看步骤说明
操作环境Hadoop/Hive/Spark
将表day中所有内容保存至云主机/root/covid/day.csv
操作环境Hadoop/Hive/Spark
创建名为covid_app的数据库此层用于各个省份每日的指标增量情况统计
操作环境Hadoop/Hive/Spark
数据库covid_app下创建app层业务表进行各个省份每日的指标增量情况统计
操作环境Hadoop/Hive/Spark
将表day_app中所有内容保存至云主机/root/covid/day_app.csv
操作环境Hadoop/Hive/Spark
交通事故因素分析
1.项目需求
基于大数据的交通事故因素分析从影响交通安全的主要因素出发分析挖掘道路交通事故的规律和特征实现交通风险评估为城市肃清道路交通安全隐患提供一定参考和应用价值。
2.数据说明
数据地址/root/college/traffic.csv 数据文件中字段对应的含义如下
字段数据类型说明peopletypestring人员类型roadnumstring道路编号caridint车辆idtimedate事故时间provincestring省份genderstring性别ageintdrivertypestring驾驶证类型beltstring安全设置使用(安全带)airbagsstring气囊popupstring弹出情况injurysting伤势operationstring操作sightstring视线checkstring酒精检测
示例数据: 司机,HY368708,10,2015-08-04 12:40:00,江苏,男,未知,不适用,没有弹出,没有受伤,拒绝让步,未知,未测验 司机,HY374018,96,2015-07-31 17:50:00,江苏,男,使用安全带,无部署 ,没有弹出,没有受伤,车距过近,未知,未测验
3.分析思路
1.针对事故中的人员信息进行分析从年龄、性别、车型、行为操作等不同方面进行分析试找出不同因素对事故的影响比重。 2.针对地域、路段、时间段、车辆状态等因素着手试寻找环境等外在因素对事故的影响。 3.针对在安全设备的部署和保护等条件下对事故中人员伤情信息进行分析试找出事故安全和安全设备之间的关系。
时间段定义如下
--early morning: [5:00, 7:59]
--morning: [8:00, 10:59]
--noon: [11:00, 12:59]
--afternoon: [13:00, 17:59]
--evening: [18:00, 21:59]
--night: [22:00, 4:59]考核条件如下 :
1.在hive数据库下构建数据表traffic并导入数据traffic.csv 操作环境Hadoop/Hive/Spark
2.创建中间表driver只保留人员类型为“司机”的数据,同时过滤年龄为空值的数据后续均在此中间表基础上进行分析 操作环境Hadoop/Hive/Spark
3.统计traffic表中数据量,结果写入本地/root/traffic1/中 操作环境Hadoop/Hive/Spark
4.统计中间表driver数据量结果写入本地root/traffic2 操作环境Hadoop/Hive/Spark
5.计算持有C1证件的驾驶员数量结果写入本地/root/traffic3/ 二维数组驾驶证类型 数量 操作环境Hadoop/Hive/Spark
6.计算发生交通事故人员中驾驶人员的平均年龄(向上取整),结果写入本地/root/traffic4/ 操作环境Hadoop/Hive/Spark
7.查询发生交通事故人员中驾驶人员年龄分布TOP3结果写入本地/root/traffic5/ 二维数组年龄 数量 操作环境Hadoop/Hive/Spark
8.女性驾驶员因变道不当发生事故的数量,结果写入本地/root/traffic6/ 操作环境Hadoop/Hive/Spark
9.在江苏发生事故的男驾驶员拒绝血液酒精含量检测(拒绝检测)的人数,结果写入本地/root/traffic7/ 操作环境Hadoop/Hive/Spark
10.在2019年发生案件最少的四个省份结果写入本地/root/traffic8/ 二维数组省份 数量 操作环境Hadoop/Hive/Spark
11.找出易发生交通事故的道路编号top52019年,结果写入本地/root/traffic9/ 二维数组道路编号 数量 操作环境Hadoop/Hive/Spark
12.查询各时段所发生的案件次数结果写入本地/root/traffic10/ 二维数组道路编号 数量时间段分割见本步骤说明 操作环境Hadoop/Hive/Spark
13.在正常驾驶C1类型交通情况下分析安全气囊弹出情况分布结果写入本地/root/traffic11/ 二维数组气囊情况 数量 操作环境Hadoop/Hive/Spark
14.35岁及以上的驾驶员在转向不当条件下没有受伤的事故数量结果写入本地/root/traffic12/; 操作环境Hadoop/Hive/Spark
15.驾驶员未系安全带案例中导致人员致命伤的案例数量,结果写入本地/root/traffic13/ 二维数组伤势情况 数量 操作环境Hadoop/Hive/Spark
网络诈骗
1.项目需求
电信网络诈骗发展迅猛危害人民的切身利益它不仅使个人财产受到威胁由网络诈骗衍生的“黑色产业”发展之猖獗同时也已经升级到扰乱社会秩序的层面。一些群众不敢使用网上银行甚至拒绝一切陌生人的电话、短信严重制约了我们经济的健康发展。在智能数据终端普及的今天如何使大数据技术更好地服务于警务战略更精准地打击电信网络诈骗是我们急需解决的问题。为此我们应当站在为国家信息化、革命化保驾护航的高度利用大数据科学预测预防电信网络诈骗通过云端的机器学习模型识别网址、电话等信息升级防控手段加大打击力度从根源上打击电信网络诈骗。
基于大数据的预测电信网络诈骗为我们打击犯罪提供了崭新视角基于大数据技术的电信诈骗预测能够全面筛选电信诈骗海量信息、尤其是地理分布广而散的受害者信息更不能被遗漏。其预测分析的数据基础可以来源于公安、电信、金融各个方面既有机关企业的宏观数据亦有各当事人的微观数据分析各层次和各部分数据间的联系数据来源的全面可以确保结果的全面。基于大数据的模型与算法预测电信网络诈骗能够积极促进研发预测警务系统和警务软件促进公安数据信息系统从查询统计功能向预测功能转变是实现预测警务在打击跨境电信诈骗犯罪中应用的基础技术建设。
2.数据说明
数据地址:/root/college/fraud.txt
给定数据集字段为案件编号、案件状态、案件副案别、经济损失、损失程度、作案手法、案件来源、发案时间、发案地点、受理单位、受理时间、报案时间、警官、破案时间。
字段说明数据类型idIDintstate案件状态stringclass案件副类别stringloss经济损失intdegree损失程度stringmode作案手法stringsource案件来源stringuppertime发案时间上限timestamplowertime发案时间下限timestampplace发案地点stringaccept_unit受理单位stringaccept_time受理时间timestamptake_time报案时间timestamppolice警官stringbreak_time破案日期timestamp
3.关联规则
定义一个关联规则A-B 其中A和B表示的是两个互斥事件A称为前因(antecedent)B称为后果(consequent)上述关联规则表示A会导致B。
一般我们使用三个指标来度量一个关联规则这三个指标分别是支持度、置信度和提升度。 Support支持度表示同时包含 A 和 B 的事务占所有事务的比例。如果用 P(A) 表示包含 A 的事务的比例那么 Support PA B Confidence置信度表示包含 A 的事务中同时包含 B 的事务的比例即同时包含 A 和 B 的事务占包含 A 的事务的比例。公式表达Confidence PA B/ P(A) Lift提升度表示“包含 A 的事务中同时包含 B 的事务的比例”与“包含 B 的事务的比例”的比值。公式表达Lift ( PA B/ P(A) ) / P(B) PA B/ P(A) / P(B)。
考核条件如下 :
1.在hive数据库下构建数据表fraud 操作环境Hadoop/Hive/Spark
2.统计表数据,结果写入本地/root/fraud00/000000_0中 操作环境Hadoop/Hive/Spark
3.统计2017年3月份的经济损失总额将结果写入到本地/root/fraud01/000000_0中。以报案时间为准 操作环境Hadoop/Hive/Spark
4.找出经济损失金额最多的案件副类别并给出该案件副类别对应的损失总额将结果写入到本地/root/fraud02/000000_0中。 操作环境Hadoop/Hive/Spark
5.统计2016年03月份发生案件总数将结果写入到本地/root/fraud03/000000_0中。以报案时间为准 操作环境Hadoop/Hive/Spark
6.在损失度为“特别巨大”的案件中找出发生次数最高的案件副类别并统计其发生次数将结果写入到本地/root/fraud04/000000_0中 操作环境Hadoop/Hive/Spark
7.列出诈骗金额最高的3个地区给出对应的损失金额将结果写入到本地/root/fraud05/000000_0中地区示例格式为A城A区 操作环境Hadoop/Hive/Spark
8.“短信诈骗”的发案时间平均为多久即发案时间的下限天-发案时间的上限天将结果写入到本地/root/fraud06/000000_0中 操作环境Hadoop/Hive/Spark
9.“电话诈骗”的受害人平均在发案之后多久才会报案即报案时间-发案时间上限天将结果写入到本地/root/fraud07/000000_0中 操作环境Hadoop/Hive/Spark
10.计算所有已破案案件从报案到破案的平均处理时间天将结果写入到本地/root/fraud08/000000_0中 操作环境Hadoop/Hive/Spark
11.列出2016年春季的经济损失总额将结果写入到本地/root/fraud09/000000_0中春季为1、2、3月以报案时间为准 操作环境Hadoop/Hive/Spark
12.列出案发数最高的地区top10及其对应的案发次数将结果写入到本地/root/fraud10/000000_0中 操作环境Hadoop/Hive/Spark
13.统计所有开学季9月经济损失总额将结果写入到本地/root/fraud11/000000_0中 操作环境Hadoop/Hive/Spark
14.在损失金额超过18万的案件中找出受理案件最多的派出所top5及其对应受理案件数目将结果写入到本地/root/fraud12/000000_0中 操作环境Hadoop/Hive/Spark
15.列出破案数额最高的地区top10及其对应的破获案件数将结果写入到本地/root/fraud13/000000_0中state‘破案’ 操作环境Hadoop/Hive/Spark
16.列出2015年破案最多的警官按姓氏top5及其对应破案数将结果写入到本地/root/fraud14/000000_0中 操作环境Hadoop/Hive/Spark
17.列出深夜受理案件最多的警官按姓氏top10及接案次数将结果写入到本地/root/fraud15/000000_0中。 (00-07为深夜08-12为上午13-19为下午20-23为晚上) 操作环境Hadoop/Hive/Spark
18.统计在A城案件中的各案件副类别发生次数将结果写入到本地/root/fraud16/000000_0中。 操作环境Hadoop/Hive/Spark
19.列出2019年破获案件总金额最高的警官姓氏top10及其破获总金额将结果写入到本地/root/fraud17/000000_0中。 操作环境Hadoop/Hive/Spark
20.列出“深夜”时段受理案件最多的派出所及其受理案件数目将结果写入到本地/root/fraud18/000000_0中 (00-07为深夜08-12为上午13-19为下午20-23为晚上) 操作环境Hadoop/Hive/Spark
21.列出网络诈骗中案发次数最高的作案手法top5及其对应案发次数将结果写入到本地/root/fraud19/000000_0中。 操作环境Hadoop/Hive/Spark
22.请根据Apriori关联规则算法的原理找出与损失程度为‘较大’后项的关联度最强的作案手法前项计算其支持度,结果写入/root/fraud20/01/000000_0中(保留五位小数) 操作环境Hadoop/Hive/Spark
23.请根据Apriori关联规则算法的原理找出与损失程度为‘较大’后项的关联度最强的作案手法前项计算其置信度,结果写入/root/fraud20/02/000000_0中(保留五位小数) 操作环境Hadoop/Hive/Spark
人口收入数据分析
1.项目需求
本数据为某人口普查公开数据数据库抽取而来该数据集类变量为年收入是否超过50k$属性变量包含年龄、工作类型、教育程度等属性统计对各因素对收入的影响。
数据为/root/college/person.txt变量如下
字段类型说明agedouble年龄workclassstring工作类型fnlwgtstring可代表的人数edustring教育程度edu_numdouble受教育时间marital_statusstring婚姻状况occupationstring职业relationshipstring关系racestring种族sexstring性别gainstring资本收益lossstring资本损失hoursdouble每周工作时长nativestring原籍incomestring收入
2.Hive安全配置
为防止大数据集群稳定性类似非全等join非inner join是禁止的禁用了SemanticException笛卡尔产品。
FAILED: SemanticException Cartesian products are disabled for safety reasons. If you know what you are doing, please sethive.strict.checks.cartesian.product to false and that hive.mapred.mode is not set to ‘strict’ to proceed. Note that if you may get errors or incorrect results if you make a mistake while using some of the unsafe features.
hive set hive.strict.checks.cartesian.product;
# 首先查看hive.strict.checks.cartesian.product
hive set hive.strict.checks.cartesian.productfalse;
# 设置hive.strict.checks.cartesian.product为false考核条件如下 :
1.数据/root/college/person.txt上传至hdfs://college/目录下 2.数据库hive下创建person数据表,并导入数据 3.计算较高收入人群占整体数据的比例结果写入本地/root/person01/000000_0。 其他说明结果四舍五入保留两位小数。 4.计算学历为Bachelors的人员在调查中的占比结果写入本地/root/person02/000000_0。结果四舍五入保留两位小数。 5.计算青年群体中高收入年龄层排行top3结果写入本地/root/person03/000000_0。注意15-34岁为青年。 6.计算男性群体中高收入职业排行top5结果写入本地/root/person04/000000_0。注意职业升序排列 7.统计性别对于收入的影响计算不同性别的占比结果写入本地/root/person05/000000_0。结果为高收入中性别比例结果四舍五入保留两位小数格式为性别 对应比例(如Male 1.0)。 8.统计教育程度对于收入的影响结果写入本地/root/person06/000000_0。其他说明数据条件为高收入对不同教育程度进行数量累加。
电商运营数据分析
1.项目需求
信息流、物流和资金流三大平台是电子商务的三个最为重要的平台。而电子商务信息系统最核心的能力是大数据能力包括大数据处理、数据分析和数据挖掘能力。无论是电商平台还是在电商平台上销售产品的卖家都需要掌握大数据分析的能力。越成熟的电商平台越需要以通过大数据能力驱动电子商务运营的精细化更好的提升运营效果提升业绩。
本次竞赛数据集为某购物平台在“双11”之前和之后的过去6个月内的匿名用户的购物日志以及指示它们是否是重复购买者的标签信息。 由于隐私问题数据采取的方式有偏差所以这个数据集的统计结果会偏离平台购物的实际情况但是这不会影响解决方案的适用性。
2.数据说明
本次比赛阶段数据集已经提供文件名称为shopping.csv。
shopping.csv中字段含义如下
数据字段定义user_id购物者的唯一IDage_range用户的年龄范围1 代表[18]; 2表示[18,24]; 3表示 [25,29]; 4表示 [30,34]; 5表示[35,39]; 6 表示[40,49]; 7表示[50,59];8表示[60]。0和NULL为未知。gender用户性别0为女1为男2和空null为不详merchant_id商家的唯一IDlabel值来自{01-1NULL}。 1’表示’user_id’是’merchant_id’的重复购买者0’表示非重复买家。其他不详activity_log{user_idmerchant_id}用户、商家之间的交互记录集。用来分隔两个相邻的交互记录。记录没有以任何特定顺序排序。单个交互记录表示为“item_id:category_id:brand_id:time_stamp:action_type”的操作字段之间使用‘:’进行分割。示例17235:1604:4396:0818:0#954723:1604:4396:0818:0
activity_log中单个交互记录字段含义如下
数据字段定义item_id交互记录的唯一IDcategory _id商品所属类别的唯一IDbrand_id品牌的唯一IDtime_stamp购物发生的时间格式mmddaction_type枚举类型{0,1,2,3}其中0表示点击1表示加入购物车2表示购买3表示加入收藏
3.分析思路
step1创建shopping表用于存放原始数据shopping.csv
user_id(int)age_range(int)gender(int)merchant_id(int)label(int)activity_log(varchar)3417660944-1408895:1505:7370:1107:03417660412-117235:1604:4396:0818:0#954723:1604:4396:0818:0#275437:1604:4396:0818:0#236488:1505:4396:1024:0
step2创建中间表result要求字段包括user_iditem_idbrand_id,action_type注意处理map结构的字段将数组转换成多行。
中间表是数据库中专门存放中间计算结果的数据表。这里注意进行数据的切分。
1首先将activity_log中以‘#’分割的数据拆成多行数据
user_idage_rangegendermerchant_idlabelactivity_log3417660944-1408895:1505:7370:1107:03417660412-117235:1604:4396:0818:03417660412-1954723:1604:4396:0818:03417660412-1275437:1604:4396:0818:03417660412-1236488:1505:4396:1024:0
2将拆成行的数据activity_log中以‘’分割的数据拆分成元素
user_idage_rangegendermerchant_idlabelitem_idcategory _idbrand_idtime_stampaction_type3417660944-140889515057370110703417660412-117235160443968180
3选取指定字段写入中间表result
user_iditem_idbrand_idaction_type3417640889573700341761723543960
step3按照要求进行数据分析
考核条件如下 :
1.在hive数据库下构建数据表shopping数据类型参考步骤说明。
2.将原始导入到表shopping中注意过滤第一行字段信息。
3.在hive数据库下创建result中间表注意数据切分相关要求参看步骤说明。
4.在hive数据库下创建click表统计数据中点击次数top10的商品信息,结果写入文件/root/click_top_10/000000_0
5.统计数据中购买次数top10的商品信息,结果写入文件/root/emp_top_10/000000_0
6.统计数据中收藏次数top10的商品信息,结果写入文件/root/collect_top_10/000000_0
7.根据用户浏览(点击)最多的品牌计算该品牌的的收藏购买转化率,结果写入/root/collect_emption路径下
8.查找最活跃用户求出该用户对应的点击购买转化率最高的品牌信息,并将结果写入/root/click_emption路径下
贷款数据分析
(0 / 100 分)
首先创建对应数据库根据数据类型创建表最后将数据进行导入。 本此数据不进行数据清洗。数据说明如下 LoanStatus贷款状态 BorrowerRate贷款率 ProsperScore信用得分 Occupation职业 EmploymentStatus就业状态 IsBorrowerHomeowner是否有房 CreditScoreRangeLower信用评分下限 CreditScoreRangeUppe信用得分上限 IncomeRange收入范围 数据类型自行定义。
数据地址/root/loan/loan.csv
1.赛题补充 5.对信用得分上限及下限进行中间数求值作为职业信用分对职业进行分组计算职业信用分top5。结果top5写入/root/college005/000000_0文件。 职业信用分(CreditScoreRangeLowerCreditScoreRangeUpper)/2 分组说明按照职业分组。 复合排列按照职业信用分降序职业升序 结果格式职业 职业信用分
2.数据挖掘 公式参考如下
前项A 后项B
支持度表示同时包含A和B的事务占所有事务的比例。如果用P(A)表示使用A事务的比例。
公式SupportP(AB)置信度表示使用包含A的事务中同时包含B事务的比例即同时包含A和B的事务占包含A事务的比例。
公式ConfidenceP(AB)/P(A)题目请根据Apriori关联规则算法的原理找出与违约最多的借款状态后项之间的关联度最强的职业前项,并计算出其支持度与置信度。
其他说明
为防止大数据集群稳定性类似非全等join非inner join是禁止的禁用了SemanticException笛卡尔产品。 FAILED: SemanticException Cartesian products are disabled for safety reasons. If you know what you are doing, please sethive.strict.checks.cartesian.product to false and that hive.mapred.mode is not set to ‘strict’ to proceed. Note that if you may get errors or incorrect results if you make a mistake while using some of the unsafe features.
# 进行数据挖掘笛卡尔积之前进行如下配置
hive set hive.strict.checks.cartesian.product;
# 首先查看hive.strict.checks.cartesian.product
hive set hive.strict.checks.cartesian.productfalse;
# 设置hive.strict.checks.cartesian.product为false考核条件如下 :
1.将数据loan.csv上传到hdfs的/input/目录下
2.创建数据库hive
3.在hive数据库下构建数据表loan
4.将提供的分析数据导入到表loan中并统计数据至本地/root/college000/000000_0文件中
5.以信用得分ProsperScore为变量对借款进行计数统计降序结果写入本地/root/college001/000000_0文件中。
6.给出借款较多的行业top5结果写入本地/root/college002/000000_0文件中。
7.分析贷款状态为违约Defaulted的贷款人就业信息将结果top3写入/root/college003/000000_0文件
8.对数据中收入范围进行分组统计降序查看贷款人收入情况结果写入/root/college004/000000_0文件
9.对信用得分上限及下限进行中间数求值作为职业信用分对职业进行分组计算职业信用分top5具体见步骤说明。结果写入/root/college005/000000_0文件。
10.支持度写到本地/root/college006/000000_0文件中(保留五位小数)
11.置信度写到本地/root/college007/000000_0文件中(保留五位小数)。
房屋租赁分析
1.项目需求
本数据为某中介网站某段时间某地区的防区出租价格通过对户型、商圈、小区、地址、周围设施、交通配套等信息对网站上的房源情况进行探索分析进而了解地区性房租的相关情况。
2.数据说明
数据路径/root/college/house.csv
字段说明字段数据类型标题titlestring户型layoutstring区县districtstring商圈areastring楼盘estatestring房租rentint地铁stationstring亮点1merit1string亮点2merit2string亮点3merit3string
示例数据 标题,户型,区县,商圈,小区,房租,地铁,亮点1,亮点2,亮点3 绿地 精装套二 随时看房 实图拍摄 临千盛 欧尚 优博 穿巷子,整租|2室2厅|84㎡|朝南,武侯,簇桥,绿地圣路易名邸,2400,家电齐全, 警官公寓 合租 次卧103平米2室1厅1卫限女生,合租次卧|2户合租|103㎡,高新区,中和镇,警官公寓,860,交通便利,合租女生, 高新区大源嘉祥瑞庭南城 35平米1室1厅1卫,整租|1室1厅|35㎡|朝南北,高新区,大源,嘉祥瑞庭南城,2300,采光好, 国光一环大厦1室1厅1卫,整租|1室1厅|60㎡|朝南,成华,建设路伊藤,国光一环大厦,1300,红星桥站,随时入住,
考核条件如下 :
1.在hive数据库下构建数据表house并导入数据house.csv
2.计算房屋出租量前十的楼盘排名结果写入本地/college2020/01/000000_0 二维数组楼盘 数量,不计入空值
3.计算房屋出租量前十的商圈排名结果写入本地/college2020/02/000000_0 二维数组商圈 数量,不计入空值
4.整理双流区整租三室一厅不同楼盘价格结果写入本地/college2020/03/000000_0 (二维数组楼盘 价格为均价降序)
5.现想在中坝站万家湾附近进行合租试给出户型及房租信息进行参考结果写入本地/college2020/04/000000_0 (二维数组户型 价格降序)
6.现想在保利星座进行租房预算为1000-1500试给出参考户型信息结果写入本地/college2020/05/000000_0 (二维数组户型 价格降序)
7.试列出不同商圈整租1室1厅的价格TOP3结果写入本地/college2020/06/000000_0 (二维数组商圈 价格均值降序)
8.试列出高新区不同户型的整租价格清单结果写入本地/college2020/07/000000_0 (二维数组示例3室2厅 4000均值向下取整降序)
9.合并房屋出租亮点(特点),给出常用亮点TOP5,结果写入本地/college2020/08/000000_0 (二维数组:亮点 数量不计入空值降序)
共享单车数据分析
1.项目需求
现有数据为某年某段时间某地区的共享单车数据集可以适用于大数据分析和挖掘。通过对共享单车的骑行规律用户群体单日活月用户等数据的分析给出运营思路和方法上的建议对共享单车的发展有一个整体的把握。基于对数据的分析可以进行活动推广、会员特定优惠也可进行专线共享大巴等活动策划。
目前有数据文件/root/college/bike.csv字段解释
字段中文释义字段英文释义骑行时间毫秒为单位duration (ms)开始时间startdate结束时间enddate开始地点数startnum开始地点startstation结束地点数endnum结束地点dndstation单车车号bikenum用户类型typeMember 会员/ Casual临时会员
题目说明 数据上传至hdfs文件系统/college/目录下 统计本次数据所有单车数量以单车车号进行计算结果写入本地/root/bike01/000000_0文件中。 其他说明以单车车号进行统计计算。 计算单车平均用时结果写入本地/root/bike02/000000_0文件中以分钟为单位对数据结果取整数值四舍五入。 格式对于结果中的二维数据要求使用“\t”作为声明文件分隔符 其他说明以分钟为单位对数据结果取整数值四舍五入。 统计常年用车紧张的地区站点top10结果写入本地/root/bike03/000000_0文件中。(以stratstation为准) 格式对于结果中的二维数据要求使用“\t”作为声明文件分隔符 复合排列先按照用车总辆进行降序排列再按照开始地区升序排列 其他说明数目限制为10。 给出共享单车单日租赁排行榜结果写入本地/root/bike04/000000_0文件中。以startdate为准,结果格式为2021-09-14 格式对于结果中的二维数据要求使用“\t”作为声明文件分隔符 复合排列先按照租赁总量进行降序排列再按照开始时间升序排列 其他说明数据为年月日以开始时间为数据标准,排行前5。 给出建议维修的单车编号使用次数结果写入本地/root/bike05/000000_0文件中。 格式对于结果中的二维数据要求使用“\t”作为声明文件分隔符 复合排列先按照用车总辆进行降序排列再按照单车编号升序排列 其他说明使用磨损较高的单车使用次数数目为10。 给出可进行会员活动推广的地区结果写入本地/root/bike06/000000_0文件中。以stratstation为准 格式对于结果中的二维数据要求使用“\t”作为声明文件分隔符 复合排列先按照用车总辆进行降序排列再按照开始地区升序排列 其他说明以非会员用户用车为数据标准地区数目为10。 给出可舍弃的单车站点结果写入本地/root/bike07/000000_0文件中。以endstation为准 格式对于结果中的二维数据要求使用“\t”作为声明文件分隔符 复合排列先按照用车总辆进行升序排列再按照结束地区升序排列 其他说明以会员目的地为数据标准地区数目为10。
提示
Hive数据导出到指定路径的文件中方式如下 方式一在bash中直接通过hive -e命令并用’‘输出流把执行结果输出到制定文件 方式二在bash中直接通过hive -f命令执行文件中一条或者多条sql语句,并用’输出流把执行结果输出到制定文件 方式三在hive中输入hive-sql语句通过使用’INSERT OVERWRITE (LOCAL) DIRECTORY’结果到本地系统和HDFS文件系统
考核条件如下 :
1.数据/root/college/bike.csv上传至hdfs://college/目录下
2.统计本次数据所有单车数量以单车车号进行计算注意去重结果写入本地/root/bike01/000000_0文件中。
3.计算单车平均用时结果写入本地/root/bike02/000000_0文件中以分钟为单位对数据结果取整数值四舍五入。
4.统计常年用车紧张的地区站点top10结果写入本地/root/bike03/000000_0文件中。(以stratstation为准)
5.给出共享单车单日租赁排行榜结果写入本地/root/bike04/000000_0文件中。以startdate为准,结果格式为2021-09-14
6.给出建议维修的单车编号使用次数结果写入本地/root/bike05/000000_0文件中。
7.给出可进行会员活动推广的地区结果写入本地/root/bike06/000000_0文件中。以stratstation为准
8.给出可舍弃的单车站点结果写入本地/root/bike07/000000_0文件中。以endstation为准 注文中所提资料仅提供第一题互联网日志分析题目分析文本资料其他资料请按照题目要求自行生成相关符合条件的资料进行分析求解