ドメイン/キー/値の一意の組み合わせでグループ化された、ドメイン、キー、値、およびカウントを含むテーブルを生成するハイブ クエリを実行しようとしています。
データの例:
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
望ましい出力:
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
これが私が使ってきたものです:
"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;"
どこが間違っていますか?特に私がめちゃくちゃだと思う場所は次のとおりです: str_to_map(parse_url(url,'QUERY'),'&','=') クエリ文字列を複数のキーと値のペアに分割する方法がわからないため、次に、正しくグループ化します。