Jak analizować łańcuch zapytania URL w gałęzi Hive do wielu par klucz-wartość

Próbuję uruchomić zapytanie gałęzi, które wygeneruje tabelę z domeną, kluczem, wartością i liczbą, pogrupowaną według unikalnej kombinacji domeny / klucza / wartości.

Przykład danych:

http://www.aaa.com/path?key_a=5&key_b=hello&key_c=today&key_d=blue
http://www.aaa.com/path?key_a=5&key_b=goodb&key_c=yestr&key_d=blue
http://www.bbb.com/path?key_a=5&key_b=hello&key_c=today&key_d=blue
http://www.bbb.com/path?key_a=5&key_b=goodb&key_c=ystrd

Pożądane wyjście:

aaa.com | key_a | 5 | 2
aaa.com | key_b | hello | 1
aaa.com | key_b | goodb | 1
aaa.com | key_c | today | 1
aaa.com | key_c | yestr | 1
aaa.com | key_d | blue | 2
bbb.com | key_a | 5 | 2
bbb.com | key_b | hello | 1
bbb.com | key_b | goodb | 1
bbb.com | key_c | today | 1
bbb.com | key_c | ystrd | 1
bbb.com | key_d | blue | 1

Oto, z czego korzystałem:

"select parse_url(url,'HOST'), str_to_map(parse_url(url,'QUERY'),'&','='), count(1) from url_table group by select parse_url(url,'HOST'), str_to_map(parse_url(url,'QUERY'),'&','=') limit 10;"

Gdzie się mylę? Dokładnie tam, gdzie myślę, że się bawię, to: str_to_map (parse_url (url, „QUERY”), „&”, „=”), ponieważ nie wiem, jak podzielić łańcuch zapytania na wiele par klucz-wartość i następnie zgrupuj poprawnie.

questionAnswers(2)

yourAnswerToTheQuestion