Разобрать массив структур в кусте можно по следующему синтаксису.
col1 col2 col3 col4
A1 29 [{"M1":"P1","M2":"-1","M3":"22","M4":"0"},{"M1":"PE","M2":"136","M3":"95","M4":"0.25"}] [{"M5":"10","M6":1},{"M5":"11","M6":2}]
A2 2 [{"M1":"P1","M2":"-1","M3":"10","M4":"-0.13"}] [{"M5":"5","M6":1}]
A3 6 NULL NULL
A4 2 NULL NULL
A5 3 NULL NULL
select
col1,
col2,
explode_col3.M1,
explode_col3.M2,
explode_col3.M3,
explode_col3.M4
from table1
LATERAL VIEW explode(col3) exploded_table as explode_col3;
Как взорвать несколько массивов col3, col4?
col3 & col4 - это массив, который будет иметь равныйколичество записей.В приведенном ниже сценарии первая строка имеет 2 записи внутри col3 и col4, а вторая строка имеет 1 запись внутри col3 & col4.Первая запись в столбце col3 сопоставляется с первой записью в столбце col4, аналогично для других.
Выходные данные:
col1 col2 M1 M2 M3 M4 M5 M6
A1 29 P1 -1 22 0 10 1
A1 29 PE 136 95 0.25 11 2
A2 2 P1 -10 10 -0.13 5 1
A3 6
A4 2
A5 3