我的样本数据集看起来像这样:
tmj_dc_mgmt, Washington, en, 483, 457, 256, ['hiring', 'BusinessMgmt', 'Washington', 'Job']
SRiku0728, 福山市, ja, 6705, 357, 273, ['None']
BesiktaSeyma_, Akyurt, tr, 12921, 1801, 283, ['None']
AnnaKFrick, Virginia, en, 5731, 682, 1120, ['Investment', 'PPP', 'Bogota', 'jobs']
Accprimary, Manchester, en, 1650, 268, 404, ['None']
方括号内的数据是主题标签,我想计算整个列表中的前10个主题标签。
我已达到目前为止,不知道如何进一步行动。
twitter_feed = LOAD '/twitter-data-mining/15' USING PigStorage(',');
hash_tags = FOREACH twitter_feed GENERATE $7;
fallten = FILTER hash_tags BY $1 MATCHES '\w+'|'\w+(\s\w+)*'
DUMP fallten;
任何正确方向的帮助都将不胜感激
谢谢!
答案 0 :(得分:3)
load语句不正确。有两种方法可以实现这一点来获取主题标签。第一种方法是使用' ['然后操纵字符串来计算hashtags。第二种方法是加载整行并使用regex_extract_all获取主题标签。我列出了第一种方式。见下文
注意:我没有改变主题标签的情况,因为它很简单
A = LOAD 'test10.txt' USING PigStorage('[');
B = FOREACH A GENERATE REPLACE(REPLACE($1,']',''),'\'','');
C = FOREACH B GENERATE FLATTEN(TOKENIZE(*));
D = FILTER C BY NOT($0 MATCHES 'None');
E = GROUP D by $0;
F = FOREACH E GENERATE group,COUNT(D.$0);
DUMP F;
<强>输出强>