我有两个文件——venues.csv 和 tweets.csv。我想为每个场所计算来自推文文件的推文消息中出现的次数。
我已经在 HCatalog 中导入了 csv 文件。
到目前为止我设法做的事情:
我知道如何过滤text
字段并获取这些包含'Shell'
其推文消息的元组。我想做同样的事情,但不是使用 hard-coded Shell
,而是name
从venuesNames
包中的每一个。我怎样才能做到这一点?另外,如何generate
正确使用该命令来生成一个新包,该包将计数结果与场地名称相匹配?
a = LOAD 'venues_test_1' USING org.apache.hcatalog.pig.HCatLoader();
b = LOAD 'tweets_test_1' USING org.apache.hcatalog.pig.HCatLoader();
venuesNames = foreach a generate name;
countX = FILTER b BY (text matches '.*Shell.*');
venueToCount = generate ('Shell' as venue, COUNT(countX) as countVenues);
DUMP venueToCount;
我正在使用的文件是:
推文.csv
created_at,text,location
Sat Nov 03 13:31:07 +0000 2012, Sugar rush dfsudfhsu, Glasgow
Sat Nov 03 13:31:07 +0000 2012, Sugar rush ;dfsosjfd HAHAHHAHA, London
Sat Apr 25 04:08:47 +0000 2009, at Sugar rush dfjiushfudshf, Glasgow
Thu Feb 07 21:32:21 +0000 2013, Shell gggg, Glasgow
Tue Oct 30 17:34:41 +0000 2012, Shell dsiodshfdsf, Edinburgh
Sun Mar 03 14:37:14 +0000 2013, Shell wowowoo, Glasgow
Mon Jun 18 07:57:23 +0000 2012, Shell dsfdsfds, Glasgow
Tue Jun 25 16:52:33 +0000 2013, Shell dsfdsfdsfdsf, Glasgow
场地.csv
city,name
Glasgow, Sugar rush
Glasgow, ABC
Glasgow, University of Glasgow
Edinburgh, Shell
London, Big Ben
我知道这些是基本问题,但我刚刚开始使用 Pig,任何帮助将不胜感激!