Свинья: как разбить массив - PullRequest
0 голосов
/ 15 апреля 2011

у меня есть такой кортеж:

((item114,),1)
((item32,item31,),1)
((item81,item27,),2)

последнее число - частота элемента, поэтому item114 имеет частоту.1, пункт 81 имеет частоту.из 2, теперь я хочу разделить его на кортеж формата: (item #, freq.), поэтому результат будет:

 (item114, 1)
 (item32, 1)
 (item31, 1)
 (item81, 2)
 (item27, 2)

как я могу это сделать?Спасибо.

1 Ответ

1 голос
/ 18 апреля 2011

Вы можете существенно сгладить отношение, которое даст вам желаемый кортеж. Например, позвольте C описать вышеупомянутое отношение, которое является следующим,

C = GROUP input by A;

describe C;
C: {group: int, input: {i: int,j: int,k: int}}

dump C;
({(item114,)},1)

d = foreach c generate group, flatten(a.i);

describe d;
d: {group: int,i::i: int}

dump d;
(item114, 1)
(item32, 1)
...