文字の出現回数を降順/昇順でカウントし、特殊文字を無視しApache Pig
たいですか? 誰でもこれの解決策を教えてもらえますか?
私の入力ファイルは次のようなものです:
adaek@482;awst%16
alf$951;adftu*15
望ましい出力:
a : 5
d,t,f:2
e,k,w,l,u: 1
文字の出現回数を降順/昇順でカウントし、特殊文字を無視しApache Pig
たいですか? 誰でもこれの解決策を教えてもらえますか?
私の入力ファイルは次のようなものです:
adaek@482;awst%16
alf$951;adftu*15
望ましい出力:
a : 5
d,t,f:2
e,k,w,l,u: 1
文字列を文字のバッグに分割する UDF StringToCharArray が必要になり (toCharArray() をラップしてバッグを返す)、次の操作を行います。
a = load ... as (inp : chararray);
b = foreach a generate flatten(StringToCharArray(inp)) as singlechar;
c = group b by singlechar;
d = foreach c generate c.group as singlechar, COUNT_STAR(b) as total;
e = group d by total;
f = foreach e generate d as chargroup, e.group as total;
dump f;