步骤:
创建一个测试表
hive> create table test(line string);
加载数据文件到临时表
hive> LOAD DATA LOCAL INPATH '/user/tmp/a.txt' OVERWRITE INTO TABLE test;
加载数据文件到临时表
hive> create table word_count as
select word,count(1) as count from
(select explode(split(line,'\\s')) as word from test) w
group by word
order by word;
其中split()函数中第一个参数为对谁进行切分,第二个参数为按什么进行切分。explode()函数是将每行切分好的单词数据,放到每一行,即每行只有一个单词。
Hive的优点
1.简单容易上手:提供了类SQL查询语言HQL
2.可扩展:为超大数据集设计了计算/扩展能力(MR作为计算引擎,HDFS作为存储系统)
3.一般情况下不需要重启服务Hive可以自由的扩展集群的规模。 提供统一的元数据管理
4.延展性:Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
5.容错:良好的容错性,节点出现问题SQL仍可完成执行
Hive的局限性
1.Hive的HQL表达能力有限
迭代式算法无法表达,比如PageRank
数据挖掘方面,比如K-Means
2.Hive的效率比较低
Hive自动生成的MapReduce作业,通常情况下不够智能化
Hive调优比较困难,粒度较粗
3.Hive可控性差