大数据之hive表操作

 

hive安装

 



1,xuhaitao,36
2,hunkxu,63
3,zhouwa,13

 create table biao001(id int,name string,age int) row format delimited fields terminated by ',';

034,1:2:3:4
035,5:6
036,7:8:9:10

 create table class_test(name string, student_id_list array<INT>)
 ROW FORMAT DELIMITED 
 FIELDS TERMINATED BY ','
 COLLECTION ITEMS TERMINATED BY ':';

  

 或者使用下面命令查询list中指定索引值

 select   likes[1]  from table03;

注意下面的空格是tab键的空格,而非空格键的空格

xuhaitao        唱歌,跳舞
hunkxu  练武,写代码

 create table table03(name string,likes array<string>)
 ROW FORMAT DELIMITED
 FIELDS TERMINATED BY '\t'
 COLLECTION ITEMS TERMINATED BY ',';

 


分区表,注意分区表的字段一定不能够在表中存在


create table tb01(id int,city  string) partitioned by (country string)  row format 
delimited fields terminated by ',';

准备两批数据,,分别是1.txt和2.txt


1.txt

1,郑州
2,信阳
3,洛阳

 

 分区表,必须使用load加载数据

load data local  inpath '/1.txt' into table tb01  partition (country='henan');

 

 

 


 接着加载第二段数据

1,深圳
2,珠海
3,广州

load data local inpath '/2.txt' into table tb01  partition (country='guangdong');

 

 


分桶表,注意分桶表中字段必须是表中存在的


 做分桶需要打开分桶开关,默认是关着的 

set hive.enforce.bucketing =true;
set mapreduce.job.reduces=4;

 


 创建一个桶表

create table stu_bucket (bianhao int ,name string,sex string ,age int )
clustered by (bianhao)
into 4 buckets
row format delimited 
fields  terminated by ',';

还需要准备一张临时表

create table stu (bianhao int ,name string,sex string ,age int )
row format delimited 
fields  terminated by ',';

下面准备一些分桶数据 students.txt

22,xuhaitao,nan,30
24,hunkxu,nan,25
25,xiaoxu,nan,39
26,xiaotao,nan,40
27,xiaohuan,nan,35
28,xuaishuo,nan,3
29,daiping,nv,46
30,guozhu,nan,49
31,xiaojie,nv,31
32,xxx,nv,19

  将上面数据导入到stu表中

load data local inpath  '/students.txt' into table  stu;

 


 然后执行下面指令进行分桶

    insert overwrite table stu_bucket
    select * from stu cluster by (bianhao);

 


 

 

FR:徐海涛(hunk Xu)
QQ技术交流群:386476712

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个分布式计算框架,而Hive是建立在Hadoop之上的一个数据仓库工具,它提供了SQL-like查询接口,使得非技术人员也能方便地处理大数据Hive的主要作用是将结构化的大型数据集转化为适合于分析的操作环境,包括词频统计。 词频统计在Hive中通常用于文本数据的分析,例如日志文件中的单词频率。以下是基本的Hive操作步骤: 1. **加载数据**: 首先,你需要将数据加载到Hive中,这通常是通过`LOAD DATA INPATH`命令从本地文件系统或HDFS(Hadoop分布式文件系统)中导入。 ```sql LOAD DATA LOCAL INPATH '/path/to/your/textfile.txt' INTO TABLE your_table; ``` 2. **创建外部**: 如果数据源不是HDFS,可以考虑创建外部,这样Hive不会尝试将数据加载到Hive元数据中,节省空间并提高性能。 ```sql CREATE EXTERNAL TABLE your_table (lines STRING); ``` 3. **字段解析和分词**: 使用`REGEXP_EXTRACT`或`SPLIT`函数将文本分割成单词,假设我们使用空格作为分隔符。 ```sql SELECT word, COUNT(*) as frequency FROM ( SELECT split(lines, ' ') as word FROM your_table ) words GROUP BY word; ``` 4. **去重和排序**: 为了得到每个单词及其频率,需要去除重复的单词并按频率排序。 ```sql SELECT word, COUNT(*) as frequency FROM ( SELECT DISTINCT word FROM ( SELECT split(lines, ' ') as word FROM your_table ) words ) grouped_words GROUP BY word ORDER BY frequency DESC; ``` 5. **查询结果**: 最后,你可以运行这个查询来获取结果,Hive会返回一个包含单词和其出现次数的格,按频率降序排列。 ```sql SELECT * FROM ( SELECT word, COUNT(*) as frequency ... ) ORDERED_results; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值