文章目录

  • 实验数据集下载
    • 下载实验数据集
    • 建立一个用于运行本案例的目录dbtaobao
  • 数据集的预处理
    • 删除文件第一行记录,即字段名称
    • 获取数据集中双11的前100000条数据
    • 导入数据仓库

实验数据集下载

下载实验数据集

  • data_format.zip数据集
  • 用户行为日志user_log.csv,日志中的字段定义如下:
1. user_id | 买家id
2. item_id | 商品id
3. cat_id | 商品类别id
4. merchant_id | 卖家id
5. brand_id | 品牌id
6. month | 交易时间:月
7. day | 交易事件:日
8. action | 行为,取值范围{0,1,2,3},0表示点击,1表示加入购物车,2表示购买,3表示关注商品
9. age_range | 买家年龄分段:1表示年龄<18,2表示年龄在[18,24],3表示年龄在[25,29],4表示年龄在[30,34],5表示年龄在[35,39],6表示年龄在[40,49],7和8表示年龄>=50,0和NULL则表示未知
10. gender | 性别:0表示女性,1表示男性,2和NULL表示未知
11. province| 收获地址省份
  • 回头客训练集train.csv和回头客测试集test.csv,训练集和测试集拥有相同的字段,字段定义如下:
user_id | 买家id
age_range | 买家年龄分段:1表示年龄<18,2表示年龄在[18,24],3表示年龄在[25,29],4表示年龄在[30,34],5表示年龄在[35,39],6表示年龄在[40,49],7和8表示年龄>=50,0和NULL则表示未知
gender | 性别:0表示女性,1表示男性,2和NULL表示未知
merchant_id | 商家id
label | 是否是回头客,0值表示不是回头客,1值表示回头客,-1值表示该用户已经超出我们所需要考虑的预测范围。NULL值只存在测试集,在测试集中表示需要预测的值。

建立一个用于运行本案例的目录dbtaobao

  • 把data_format.zip进行解压缩,我们需要首先建立一个用于运行本案例的目录dbtaobao
cd /usr/local
ls
sudo mkdir dbtaobao
# 这里会提示你输入当前用户(本教程是hadoop用户名)的密码
# 下面给hadoop用户赋予针对dbtaobao目录的各种操作权限
sudo chmod -R 777 ./dbtaobao
cd dbtaobao
# 下面创建一个dataset目录,用于保存数据集
mkdir dataset
# 下面就可以解压缩data_format.zip文件
cd ~/下载
ls
unzip data_format.zip -d /usr/local/dbtaobao/dataset
cd /usr/local/dbtaobao/dataset
ls

  • 取出user_log.csv前面5条记录看一下
head -5 user_log.csv

数据集的预处理

删除文件第一行记录,即字段名称

cd /usr/local/dbtaobao/dataset
# 下面删除user_log.csv中的第1行
sed -i '1d' user_log.csv # 1d表示删除第1行,同理,3d表示删除第3行,nd表示删除第n行
# 下面再用head命令去查看文件的前5行记录,就看不到字段名称这一行了
head -5 user_log.csv

获取数据集中双11的前100000条数据

  • 由于数据集中交易数据太大,这里只截取数据集中在双11的前10000条交易数据作为小数据集small_user_log.csv
  • 建立一个脚本文件完成上面截取任务,请把这个脚本文件放在dataset目录下和数据集user_log.csv:
cd /usr/local/dbtaobao/dataset
vim predeal.sh
  • 使用vim编辑器新建了一个predeal.sh脚本文件,请在这个脚本文件中加入下面代码:
#!/bin/bash
#下面设置输入文件,把用户执行predeal.sh命令时提供的第一个参数作为输入文件名称
infile=$1
#下面设置输出文件,把用户执行predeal.sh命令时提供的第二个参数作为输出文件名称
outfile=$2
#注意!!最后的$infile > $outfile必须跟在}’这两个字符的后面
awk -F "," 'BEGIN{id=0;}{if($6==11 && $7==11){id=id+1;print $1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11if(id==10000){exit}}}' $infile > $outfile
  • 执行predeal.sh脚本文件,截取数据集中在双11的前10000条交易数据作为小数据集small_user_log.csv,命令如下:
chmod +x ./predeal.sh
./predeal.sh ./user_log.csv ./small_user_log.csv

导入数据仓库

  • 启动HDFS

  • 把user_log.csv上传到HDFS中

# 在HDFS的根目录下面创建一个新的目录dbtaobao,并在这个目录下创建一个子目录dataset,如下
cd /usr/local/hadoop
./bin/hdfs dfs -mkdir -p /dbtaobao/dataset/user_log# 把Linux本地文件系统中的small_user_log.csv上传到分布式文件系统HDFS的“/dbtaobao/dataset”目录下,命令如下:
cd /usr/local/hadoop
./bin/hdfs dfs -put /usr/local/dbtaobao/dataset/small_user_log.csv /dbtaobao/dataset/user_log# 下面可以查看一下HDFS中的small_user_log.csv的前10条记录,命令如下:
cd /usr/local/hadoop
./bin/hdfs dfs -cat /dbtaobao/dataset/user_log/small_user_log.csv | head -10

  • 在Hive上创建数据库
# 请在Linux系统中,再新建一个终端(可以在刚才已经建好的终端界面的左上角,点击“终端”菜单,在弹出的子菜单中选择“新建终端”)
# 因为需要借助于MySQL保存Hive的元数据,所以,请首先启动MySQL数据库
service mysql start  #可以在Linux的任何目录下执行该命令# 在这个新的终端中执行下面命令进入Hive:
cd /usr/local/hive
./bin/hive   # 启动Hive# 在Hive中创建一个数据库dbtaobao
hive>  create database dbtaobao;
hive>  use dbtaobao;

  • 创建外部表
# 关于数据仓库Hive的内部表和外部表的区别
# 这里分别在数据库dbtaobao中创建一个外部表user_log,它包含字段:
# (user_id,item_id,cat_id,merchant_id,brand_id,month,day,action,age_range,gender,province)
# 在hive命令提示符下输入如下命令:
hive>  CREATE EXTERNAL TABLE dbtaobao.user_log(user_id INT,item_id INT,cat_id INT,merchant_id INT,brand_id INT,month STRING,day STRING,action INT,age_range INT,gender INT,province STRING) COMMENT 'Welcome to xmu dblab,Now create dbtaobao.user_log!' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '/dbtaobao/dataset/user_log';
  • 查询数据
# HDFS中的“/dbtaobao/dataset/user_log”目录下的small_user_log.csv数据加载到了数据仓库Hive中
hive>  select * from user_log limit 10;

【大数据处理技术】「#1」本地数据集上传到数据仓库Hive相关推荐

  1. 【大数据处理技术】「#0」实验环境准备

    文章目录 实验步骤解析 「Mac系统」安装配置Linux虚拟机 虚拟机下载安装 Ubuntu下载安装 设置共享文件夹 安装Hadoop 创建hadoop用户(可忽略,本实验不使用hadoop用户) 更 ...

  2. 《深入理解大数据:大数据处理与编程实践》一一1.2 大数据处理技术简介

    本节书摘来自华章计算机<深入理解大数据:大数据处理与编程实践>一书中的第1章,第1.2节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区&quo ...

  3. 大数据处理技术导论(8) | Datawhale组队学习46期

    文章目录 10. 1 面试题 10.1.1 hive外部表和内部表的区别 10.1.2 简述对Hive桶的理解? 10.1.3 HBase和Hive的区别? 10.1.4 简述Spark宽窄依赖 10 ...

  4. 大数据处理技术之数据集成

    大数据处理技术是一个十分重要的工作,就好比做菜,我们做菜之前就需要对蔬菜进行清洗,洗过的菜我们才能够吃的放心,同时还有助于我们的身体健康.而大数据处理就好比清洗蔬菜一样,当我们对数据整理以后,我们才能 ...

  5. 【大数据处理技术】第三篇 大数据处理与分析(暂停更新)

    大数据分析与处理 第7章 MapReduce 7.1 概述 7.1.1 分布式并行编程 7.1.2 MapReduce 模型简介 7.1.3 Map 和 Reduce 函数 7.2 Mapreduce ...

  6. 下沉、重聚、归位背后,是一位学者转身业界带领阿里iDST建立技术「影响力」的四年

    撰文 | 李九喻 王艺 编辑 | 刘燕 两个月前,在杭州阿里巴巴西溪园区的一间会议室里,机器之能见到了阿里巴巴 iDST 院长金榕. 金榕风风火火地进来,在会议桌靠近门口的一侧坐下.他说话很快,由于长 ...

  7. 纯前端大数据处理技术:葡萄城纯前端开发工具应用实践

    SpreadJS 是一款基于 HTML5 的纯 JavaScript 电子表格和网格功能控件,满足多平台.跨平台的表格数据处理和类 Excel 的表格应用开发. WijmoJS 前端开发工具包由多款纯 ...

  8. 大数据时代:大数据处理技术及采集方法

    在大数据时代,传统的大数据处理技术还管用吗? 大数据处理环节下的需求 大数据环节下的数据来源是非常多,而且类型也很多花样,存储和数据处理的需求量很大,对于数据展现也非常的高,并且很看重数据处理的高效性 ...

  9. NLPIR大数据处理技术实现多种类智能挖掘

    当今,信息技术为人类步入智能社会开启了大门,带动了互联网.物联网.电子商务.现代物流.网络金融等现代服务业发展,催生了车联网.智能电网.新能源.智能交通.智能城市.高端装备制造等新兴产业发展.现代信息 ...

最新文章

  1. 从4个月到7天,Netflix开源Python框架Metaflow有何提升性能的魔法?
  2. 用Windows Storage Server 2008做iSCSI存储服务器
  3. 计算机二级c语言复习计划,全国计算机等级考试二级C语言考试复习资料与复习计划以与考试要点.doc...
  4. spring中的CGLIB动态代理(代码)
  5. 事物与持久化_揭开Redis面纱,发布订阅、事务、安全、持久化
  6. android启动的阅读笔记
  7. c语言在文本每一行末尾追加字符串,c语言在末尾添加 C语言 在链表尾部添加节点...
  8. vue本地没事放到服务器上无限循环,解决vue中的无限循环问题
  9. 我的.NET开发环境设置
  10. 羡慕!援鄂医疗队护士姐妹表达感谢 马云:婚礼记得通知我这个舅舅
  11. tkinter Canvas画图片大坑总结
  12. 单元测试 代码里面都绝对路径怎么处理_python基础之包,异常处理
  13. 使用css的类名交集复合选择器 《转》
  14. 全屏窗口指令_在iOS 14系统中,快捷指令原来有多达11种运行方式(上篇)
  15. 一些很有用的JS特效
  16. python选择题总结
  17. 多行文字cad提取数据_利用CAD自带的数据提取功能手动提取假表格至Excel
  18. BUUCTF MISC入门
  19. android刷新时的圆形动画_Android 实现倒计时动画效果
  20. python爬虫之爬取网易云音乐的歌曲图片和歌词

热门文章

  1. Android调用系统摄像头拍照并显示在ImageView上
  2. Linux环境下安装ssh2模块
  3. 【Windows】输入法图标不见了
  4. 系统管理:文件访问权限之ACL
  5. 是不是发现Python越来越火了?让我来告诉你为什么
  6. QT 热键使用,使用系统API打印
  7. php文章表格固定行,怎么固定单元格第一行
  8. CentOS 7下nginx源码包编译安装
  9. 我的TechEd 2005会议精选
  10. 矩阵的秩 线性相关