Spark入门实战系列--5.Hive(下)--Hive实战

本文深入讲解了Hive的内部表和外部表操作,包括创建、加载数据、查询等。通过实例演示了如何使用Hive进行数据处理,如使用LIKE关键字查询、分组排序等。此外,还探讨了交易数据的处理,展示了计算订单年度总金额和最大金额订单销售额的方法。
摘要由CSDN通过智能技术生成

【注】该系列文章以及使用到安装包/测试数据 可以在《倾情大奉送–Spark入门实战系列》获取

1 Hive操作演示

1.1 内部表

1.1.1 创建表并加载数据

第一步 启动HDFS、YARN和Hive,启动完毕后创建Hive数据库

hive>create database hive;
hive>show databases;
hive>use hive;

这里写图片描述

第二步 创建内部表
由于Hive使用了类似SQL的语法,所以创建内部表的语句相对SQL只增加了行和字段分隔符。

hive>CREATE TABLE SOGOUQ2(DT STRING,WEBSESSION STRING,WORD STRING,S_SEQ INT,C_SEQ INT,WEBSITE STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' ;

这里写图片描述

第三步 加载数据
数据文件可以从HDFS或者本地操作系统加载到表中,如果加载HDFS文件使用LOAD DATA INPATH,而加载本地操作系统文件使用LOAD DATA LOCAL INPATH命令。HIVE表保存的默认路径在${HIVE_HOME}/conf/hive-site.xml配置文件的hive.metastore.warehouse.dir属性指定,当创建表时会在hive.metastore.warehouse.dir指向的目录下以表名创建一个文件夹,在本演示中表默认指向的是/user/hive/warehouse。
数据文件在本地操作系统将复制到表对应的目录中,而数据文件在HDFS中,数据文件将移动到表对应的目录中,原来的路径将不存在该文件。在这里使用《Spark编程模型(上)–概念及Shell试验》中在本地操作系统中的搜狗日志数据文件:

hive>LOAD DATA LOCAL INPATH '/home/hadoop/upload/sogou/SogouQ2.txt' INTO TABLE SOGOUQ2;

这里写图片描述

在/user/hive/warehouse/hive.db/sogouq2目录下,可以看到SougouQ2.txt数据文件:
这里写图片描述

1.1.2 查询行数

可以用count关键字查询SogouQ2.txt数据行数,查询时会启动MapReduce进行计算,Map的个数一般和数据分片个数对应,在本查询中有2个Map任务(数据文件有2个Block),1个Reduce任务。

hive>select count(*) from SOGOUQ2;

这里写图片描述

这里写图片描述

1.1.3 包含baidu的数据

可以用like关键字进行模糊查询,Map的个数一般和数据分片个数对应。

hive>select count(*) from SOGOUQ2 where WEBSITE like '%baidu%';

这里写图片描述

1.1.4 查询结果排名第1,点击次序排第2,其中URL包含baidu的数据

hive>select count(*) from SOGOUQ2 where S_SEQ=1 and C_SEQ=2 and WEBSITE like '%baidu%';

这里写图片描述

这里写图片描述

1.2 外部表

1.2.1 创建表关联数据

第一步 在HDFS创建外部表存放数据目录

$hadoop fs -mkdir -p /class5/sogouq1
$hadoop fs -ls /class5

这里写图片描述

第二步 在Hive创建外部表,指定表存放目录

hive>CREATE EXTERNAL TABLE SOGOUQ1(DT 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值