怎样申请网站注册,html网站如何更新,建最便宜的网站要多少钱,广州seo网站管理目录 Hive 复合数据定义方法
Hive 复合数据查询方法
hive 内置函数
上机练习 Hive 复合数据定义方法 Hive 复合数据查询方法 hive 内置函数 -- 查看系统自带的函数 show functions; -- 显示自带的函数的用法 desc function upper; -- 详细显示自带的函数的用法 desc …目录 Hive 复合数据定义方法
Hive 复合数据查询方法
hive 内置函数
上机练习 Hive 复合数据定义方法 Hive 复合数据查询方法 hive 内置函数 -- 查看系统自带的函数 show functions; -- 显示自带的函数的用法 desc function upper; -- 详细显示自带的函数的用法 desc function extended upper; 上机练习 1 导入 user 数据 id name sex age address date lev s_info m_info a_info 2 使用三种复合数据类型 struct map array 存储 info 数据 python 清洗数据 with open(rD:\智云大数据\数据源
\user\user_info.txt,r,encodingutf-8) as f:
LineReadf.readlines()
# print(LineRead)
for i in LineRead:
list1[]
list_ii.split(\t)
# print(list_i)
# 把字典的值复制加到每行的末尾
for j in eval(list_i[7]).values():
list1.append(j)
str1|.join(list1)
list_i[7]str1
list_i.append(str1)
# print(list_i)
list_i[8]|.join(list_i[8].split(,)).strip(\n) #
把第九列转化成可以导入 struct 的形式
str_i,.join(list_i) # 每行每个数据用逗号隔开
# print(str_i)
with open(rD:\智云大数据
\user_info_disposal_new.txt,a,encodingutf-8) as h:
h.writelines(str_i\n)
h.close()
f.close() hive 建表和导入数据 drop table if exists user_info;
create table if not exists user_info
(
id int,
name string,
sex string,
age tinyint,
address string,
date_info string,
lev tinyint,
a_info arraystring,
m_info mapstring,string,
s_info
structsystemtype:string,education:string,marriage_status:string,phon
ebrand:string
)
row format delimited
fields terminated by ,
collection items terminated by |
MAP keys terminated by :
lines terminated by \n
load data local inpath /root/user_info_disposal_new.txt
into table user_info; 结果双击 object 能看见值 3 指标计算 3.1 按月统计各个地区男女生人数 select date_format(date_info,YYYY-MM),address,sex,count(1) from
user_info
group by date_format(date_info,YYYY-MM),address,sex3.2 统计各地区的不同手机型号使用人数,并按照老中青(35 以下青年 男 65 岁
以下女 55 岁以下中年 男 65 岁以上女 55 岁以上老年)年龄 划分
地区 安卓使用人数{老 中 青} ios 使用人数{老 中 青}
with SystemtypeAndAge as
(
select
case when m_info[systemtype]android then android
when m_info[systemtype]ios then iosend as systemtype,
case when age35 then 青年
when sexmale and age65 or sexfemale and age55 then 中年
else 老年
end as AgeBracket
from user_info
)
select systemtype,AgeBracket,count(1) from SystemtypeAndAge
group by systemtype,AgeBracket 3.2 统计各地区的不同手机型号使用人数,并按照老中青(35 以下青年 男 65 岁 以下女 55 岁以下中年 男 65 岁以上女 55 岁以上老年)年龄 划分 地区 安卓使用人数{老 中 青} ios 使用人数{老 中 青} with SystemtypeAndAge as
(
select
case when m_info[systemtype]android then android
when m_info[systemtype]ios then iosend as systemtype,
case when age35 then 青年
when sexmale and age65 or sexfemale and age55 then 中年
else 老年
end as AgeBracket
from user_info
)
select systemtype,AgeBracket,count(1) from SystemtypeAndAge
group by systemtype,AgeBracket 3.3 统计不同地区,不同学历,使用的手机品牌(去重)collect_list 地区 学历 手机品牌列表 select user_info.address,education
,collect_list(distinct m_info[phonebrand])
from user_info
left join
(
select address,
case m_info[education] when bachelor then bachelor
when doctor then doctorwhen master then master
end as education
from user_info
) EducationInAddress on user_info.addressEducationInAddress.address
group by user_info.address,education 3.4 统计不同等级,各个手机品牌的使用人数(需要行转列) 等级 phonebrand_list {iphone6:5 iphone7:5 .....mi:5 .....iphoneXS:2} 这题我不会老师沉迷黑吗喽作业视频讲解都还没发...... 第三阶段太吃自学能力了hive语法基本要去网上找。