Eu tenho uma estrutura de tabela assim:
Usando SparkSQL, gostaria de transformar essas colunas em linhas para produzir uma saída como esta:
Até agora, dois conseguiram isso, escrevi duas consultas, uma para A e outra para B, conforme abaixo:
select ID, Rank, Criteria from (
SELECT *
FROM Temp_Test_Hardik
UNPIVOT( Rank for Criteria IN (
A1,
A2,
A3
)))
E
select ID, Rank, Criteria from (
SELECT *
FROM Temp_Test_Hardik
UNPIVOT( Rank for Criteria IN (
B1,
B2,
B3
)))
E então execute a junção entre essas duas consultas.
Gostaria de saber se existe alguma opção melhor para conseguir isso?
Existe uma maneira melhor. Crie uma matriz de estruturas de pares (A, B) e use-a
inline
para explodir a matriz em linhas e colunasEncontre a solução abaixo.