hive 临时表、regexp_replace、get_json_object、explode、spli混用

  • Post author:
  • Post category:其他


对array数据处理

with tablea as

(

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“fd”:“client_name”,“cmp”:7,“val”:“陈洋勇”,“desc”:“客户姓名 包含 陈洋勇”,“c_has_operator”:“3”},{“op”:1,“fd”:“client_age”,“cmp”:4,“val”:“29”,“desc”:“年龄 = 29岁”,“c_has_operator”:“1”}]}’ as group_condition

union all

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“sub”:[{“op”:1,“fd”:“client_sex”,“cmp”:4,“val”:“0”,“desc”:“客户性别 = 男”,“c_has_operator”:“0”},{“op”:“0”,“fd”:“client_sex”,“cmp”:4,“val”:“1”,“desc”:“客户性别 = 女”,“c_has_operator”:“0”}]}]}’ as group_condition

union all

select ‘中间状态客群名’ as group_condition

)

select group_condition from tablea;

在这里插入图片描述

with tablea as

(

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“fd”:“client_name”,“cmp”:7,“val”:“陈洋勇”,“desc”:“客户姓名 包含 陈洋勇”,“c_has_operator”:“3”},{“op”:1,“fd”:“client_age”,“cmp”:4,“val”:“29”,“desc”:“年龄 = 29岁”,“c_has_operator”:“1”}]}’ as group_condition

union all

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“sub”:[{“op”:1,“fd”:“client_sex”,“cmp”:4,“val”:“0”,“desc”:“客户性别 = 男”,“c_has_operator”:“0”},{“op”:“0”,“fd”:“client_sex”,“cmp”:4,“val”:“1”,“desc”:“客户性别 = 女”,“c_has_operator”:“0”}]}]}’ as group_condition

union all

select ‘中间状态客群名’ as group_condition

)

select group_condition,get_json_object(group_condition,‘



.

c

o

n

.

f

d

)

a

s

a

r

r

f

r

o

m

t

a

b

l

e

a

w

h

e

r

e

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.fd’) as arr from tablea where get_json_object(group_condition,’






.


co


n


.


f



d






















)


a


s


a


rr


f


ro


m


t


ab


l


e


a


w


h


ere


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.fd’) is not null

union all

select group_condition, get_json_object(group_condition,‘



.

c

o

n

.

s

u

b

.

f

d

)

a

s

a

r

r

f

r

o

m

t

a

b

l

e

a

w

h

e

r

e

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.sub.fd’) as arr from tablea where get_json_object(group_condition,’






.


co


n


.


s


u


b


.


f



d






















)


a


s


a


rr


f


ro


m


t


ab


l


e


a


w


h


ere


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.sub.fd’) is not null;

在这里插入图片描述

with tablea as

(

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“fd”:“client_name”,“cmp”:7,“val”:“陈洋勇”,“desc”:“客户姓名 包含 陈洋勇”,“c_has_operator”:“3”},{“op”:1,“fd”:“client_age”,“cmp”:4,“val”:“29”,“desc”:“年龄 = 29岁”,“c_has_operator”:“1”}]}’ as group_condition

union all

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“sub”:[{“op”:1,“fd”:“client_sex”,“cmp”:4,“val”:“0”,“desc”:“客户性别 = 男”,“c_has_operator”:“0”},{“op”:“0”,“fd”:“client_sex”,“cmp”:4,“val”:“1”,“desc”:“客户性别 = 女”,“c_has_operator”:“0”}]}]}’ as group_condition

union all

select ‘中间状态客群名’ as group_condition

)

select group_condition,get_json_object(group_condition,‘



.

c

o

n

.

f

d

)

a

s

a

r

r

,

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.fd’) as arr ,regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


f



d






















)


a


s


a


rr


,




re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.fd’),‘”’,‘’),‘\[|\]’,‘’)

,c1

from tablea

–where get_json_object(group_condition,‘



.

c

o

n

.

f

d

)

i

s

n

o

t

n

u

l

l

l

a

t

e

r

a

l

v

i

e

w

e

x

p

l

o

d

e

(

s

p

l

i

t

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.fd’) is not null lateral view explode(split(regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


f



d






















)


i


s


n


o


t


n


u


lll


a


t


er


a


l


v


i


e


w


e


x


pl


o


d


e


(


s


pl


i


t


(


re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.fd’) ,‘”’,‘’),‘\[|\]’,‘’) ,‘,’)) b as c1

union all

select group_condition,get_json_object(group_condition,‘



.

c

o

n

.

s

u

b

.

f

d

)

a

s

a

r

r

,

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.sub.fd’) as arr ,regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


s


u


b


.


f



d






















)


a


s


a


rr


,




re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.sub.fd’),‘”’,‘’),‘\[|\]’,‘’)

,c1

from tablea

–where get_json_object(group_condition,‘



.

c

o

n

.

s

u

b

.

f

d

)

i

s

n

o

t

n

u

l

l

l

a

t

e

r

a

l

v

i

e

w

e

x

p

l

o

d

e

(

s

p

l

i

t

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.sub.fd’) is not null lateral view explode(split(regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


s


u


b


.


f



d






















)


i


s


n


o


t


n


u


lll


a


t


er


a


l


v


i


e


w


e


x


pl


o


d


e


(


s


pl


i


t


(


re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.sub.fd’) ,‘”’,‘’),‘\[|\]’,‘’) ,‘,’)) b as c1;

在这里插入图片描述

with tablea as

(

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“fd”:“client_name”,“cmp”:7,“val”:“陈洋勇”,“desc”:“客户姓名 包含 陈洋勇”,“c_has_operator”:“3”},{“op”:1,“fd”:“client_age”,“cmp”:4,“val”:“29”,“desc”:“年龄 = 29岁”,“c_has_operator”:“1”}]}’ as group_condition

union all

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“sub”:[{“op”:1,“fd”:“client_sex”,“cmp”:4,“val”:“0”,“desc”:“客户性别 = 男”,“c_has_operator”:“0”},{“op”:“0”,“fd”:“client_sex”,“cmp”:4,“val”:“1”,“desc”:“客户性别 = 女”,“c_has_operator”:“0”}]}]}’ as group_condition

union all

select ‘中间状态客群名’ as group_condition

) ,

asd as (select group_condition,get_json_object(group_condition,‘



.

c

o

n

.

f

d

)

a

s

a

r

r

,

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.fd’) as arr ,regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


f



d






















)


a


s


a


rr


,




re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.fd’),‘”’,‘’),‘\[|\]’,‘’)

,c1

from tablea

–where get_json_object(group_condition,‘



.

c

o

n

.

f

d

)

i

s

n

o

t

n

u

l

l

l

a

t

e

r

a

l

v

i

e

w

e

x

p

l

o

d

e

(

s

p

l

i

t

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.fd’) is not null lateral view explode(split(regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


f



d






















)


i


s


n


o


t


n


u


lll


a


t


er


a


l


v


i


e


w


e


x


pl


o


d


e


(


s


pl


i


t


(


re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.fd’) ,‘”’,‘’),‘\[|\]’,‘’) ,‘,’)) b as c1

union all

select group_condition,get_json_object(group_condition,‘



.

c

o

n

.

s

u

b

.

f

d

)

a

s

a

r

r

,

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.sub.fd’) as arr ,regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


s


u


b


.


f



d






















)


a


s


a


rr


,




re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.sub.fd’),‘”’,‘’),‘\[|\]’,‘’)

,c1

from tablea

–where get_json_object(group_condition,‘



.

c

o

n

.

s

u

b

.

f

d

)

i

s

n

o

t

n

u

l

l

l

a

t

e

r

a

l

v

i

e

w

e

x

p

l

o

d

e

(

s

p

l

i

t

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.sub.fd’) is not null lateral view explode(split(regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


s


u


b


.


f



d






















)


i


s


n


o


t


n


u


lll


a


t


er


a


l


v


i


e


w


e


x


pl


o


d


e


(


s


pl


i


t


(


re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.sub.fd’) ,‘”’,‘’),‘\[|\]’,‘’) ,‘,’)) b as c1)

select * from asd;

在这里插入图片描述

with tablea as

(

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“fd”:“client_name”,“cmp”:7,“val”:“陈洋勇”,“desc”:“客户姓名 包含 陈洋勇”,“c_has_operator”:“3”},{“op”:1,“fd”:“client_age”,“cmp”:4,“val”:“29”,“desc”:“年龄 = 29岁”,“c_has_operator”:“1”}]}’ as group_condition

union all

select ‘{“ver”:“2.0”,“con”:[{“op”:1,“sub”:[{“op”:1,“fd”:“client_sex”,“cmp”:4,“val”:“0”,“desc”:“客户性别 = 男”,“c_has_operator”:“0”},{“op”:“0”,“fd”:“client_sex”,“cmp”:4,“val”:“1”,“desc”:“客户性别 = 女”,“c_has_operator”:“0”}]}]}’ as group_condition

union all

select ‘中间状态客群名’ as group_condition

) ,

asd as (select group_condition,get_json_object(group_condition,‘



.

c

o

n

.

f

d

)

a

s

a

r

r

,

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.fd’) as arr ,regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


f



d






















)


a


s


a


rr


,




re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.fd’),‘”’,‘’),‘\[|\]’,‘’)

,c1

from tablea

–where get_json_object(group_condition,‘



.

c

o

n

.

f

d

)

i

s

n

o

t

n

u

l

l

l

a

t

e

r

a

l

v

i

e

w

e

x

p

l

o

d

e

(

s

p

l

i

t

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.fd’) is not null lateral view explode(split(regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


f



d






















)


i


s


n


o


t


n


u


lll


a


t


er


a


l


v


i


e


w


e


x


pl


o


d


e


(


s


pl


i


t


(


re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.fd’) ,‘”’,‘’),‘\[|\]’,‘’) ,‘,’)) b as c1

union all

select group_condition,get_json_object(group_condition,‘



.

c

o

n

.

s

u

b

.

f

d

)

a

s

a

r

r

,

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.sub.fd’) as arr ,regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


s


u


b


.


f



d






















)


a


s


a


rr


,




re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.sub.fd’),‘”’,‘’),‘\[|\]’,‘’)

,c1

from tablea

–where get_json_object(group_condition,‘



.

c

o

n

.

s

u

b

.

f

d

)

i

s

n

o

t

n

u

l

l

l

a

t

e

r

a

l

v

i

e

w

e

x

p

l

o

d

e

(

s

p

l

i

t

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

r

e

g

e

x

p

r

e

p

l

a

c

e

(

g

e

t

j

s

o

n

o

b

j

e

c

t

(

g

r

o

u

p

c

o

n

d

i

t

i

o

n

,

.con.sub.fd’) is not null lateral view explode(split(regexp_replace(regexp_replace(get_json_object(group_condition,’






.


co


n


.


s


u


b


.


f



d






















)


i


s


n


o


t


n


u


lll


a


t


er


a


l


v


i


e


w


e


x


pl


o


d


e


(


s


pl


i


t


(


re


g


e


x



p










r


















e


pl


a


ce


(


re


g


e


x



p










r


















e


pl


a


ce


(


g


e



t










j


















so



n










o


















bj


ec


t


(


g


ro


u



p










c


















o


n


d


i


t


i


o


n



,

























.con.sub.fd’) ,‘”’,‘’),‘\[|\]’,‘’) ,‘,’)) b as c1)

select c1,count(1) from asd group by c1;

在这里插入图片描述



版权声明:本文为KANGBboy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。