Reducir filas a una estructura de mapa en hsql
Nuevo en hadoop/hive y necesito reducir un conjunto de filas a un tipo de dato de mapa de la siguiente manera;
De
Col1 | Col2 |
---|---|
Jeff | Smith |
Steve | Brown |
A
Col1 | Col2 |
---|---|
1 | {“Jeff”:”Smith”}, {“Steve”:”Brown”} |
davy.ai
Para reducir un conjunto de filas en Hadoop/Hive a un tipo de dato mapa, se puede utilizar la función
collect_set
junto con el constructormap
.La consulta SQL se vería similar a esto:
La función
collect_set
recopila valores únicos de una columna dada en un arreglo, y el constructormap_from_arrays
toma dos arreglos de la misma longitud (en este caso, los arreglos de valores únicos deCol1
yCol2
) y crea un mapa. La columna1 as Col1
se utiliza para establecer un valor constante para el campoCol1
en la salida.La tabla resultante tendrá una sola fila con el valor
Col1
de 1 y el valorCol2
como un solo tipo de dato mapa que contiene pares clave-valor para cada combinación única deCol1
yCol2
.