Athena (Presto) で配列の重複した要素を数える
こんにちは、 @kz_morita です。
今回は、Athena で配列の重複した要素数を数える方法をメモします。
対象のデータ 以下のような配列データを想定します。
withdatasetas(select*from(VALUES'A','B','C','D','E','B','C','D','A','A')ast("data"))selectarray_agg("data")aslistfromdataset list {‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘B’, ‘C’, ‘D’, ‘A’, ‘A’} これを以下のように集計したいケースを考えます。
key count ‘A’ 3 ‘B’ 2 ‘C’ 2 ‘D’ 2 ‘E’ 1 Presto の場合 array_frequency という関数が用意されているのでこれを利用すれば OK です。
https://prestodb.io/docs/current/functions/array.html withdatasetas(select*from(VALUES'A','B','C','D','E','B','C','D','A','A')ast("data"))selectarray_frequency(array_agg("data"))aslistfromdatasetただし、こちらの関数は Athena では用意されてなく実行することができません。