创建一张表test_explode,表结构如下 表数据如下: 1.使用explode函数 select explode(friends) as friend from test_explode; 但是只使用explode函数很难满足实际需求,原因如下: 1.1 No other expressions are allowed in SELECT 0: jdbc:hive2://master01.hadoop.mobile.cn:1> select name,explode(friends) as
对于mysql / hive 再进行统计的时候假设须要行变成列,能够使用函数 CASE 字段a WHEN 值b THEN c [WHEN d THEN e]* [ELSE f] END 当字段a=值b时,返回c(假设是字段的话则代表该字段的值,也能够是一个固定值 加单引號就能够):当a=d时,返回e.否则返回f. 如: 数据表结构:(举例说明.id有反复的) select id ,sum(CASE action when 'article' then count else 0 end) as
1. 假设我们在hive中有两张表,其中一张表是存用户基本信息,另一张表是存用户的地址信息等,表数据假设如下: user_basic_info: id name 1 a 2 b 3 c 4 d user_address; name address a add1 a add2 b add3 c add4 d add5 我们可以看到同一个用户不止一个地址(这里是假设的),我们需要把数据变为如下格式: id name address 1 a add1,add2 2 b add3 3 c add4 4
今天有个同事找我,他说他有个需求,需要进行行转列,但是又跟一般的行转列有些区别,具体需求如下所说,需要将表1的数据转换为表2的显示格式. 我想了一下,给出了一个解决方法,具体如下所示(先给出测试数据) INSERT INTO TEST SELECT 1, 1, '定型名称', '预定型' UNION ALL SELECT 1, 2, '进布方式', '调平' UNION ALL SELECT 1, 3,