这是一个两部分问题:
第1部分:
我正在使用cloudera pig编辑器来转换我的数据。该数据集源自美国专利引文数据集。第一列是"引用"专利。其余数据是引用第一项专利的专利。
3858241 3634889,3557384,3398406,1324234,956203
3858242 3707004,3668705,3319261,1515701
3858243 3684611,3681785,3574238,3221341,3156927,3146465,2949611
3858244 2912700,2838924,2635670,2211676,17445,14040
3858245 3755824,3699969,3621837,3608095,3553737,3176316,2072303
3858246 3601877,3503079,3451067
3858247 3755824,3694819,3621837,2807431,1600859
我需要创建PIG代码,以计算第一项专利的引用次数。所以,我需要输出:
3858241 5
3858242 4
3858243 7
3858244 6
3858245 7
3858246 3
3858247 6
第2部分: 我需要使用PIG脚本创建问题1输出的直方图。
非常感谢任何帮助。
由于
答案 0 :(得分:0)
这个脚本应该可以工作。
X = LOAD 'pigpatient.txt' using PigStorage(' ') AS (pid:int,str:chararray);
X1 = FOREACH X GENERATE pid,STRSPLIT(str, ',') AS (y:tuple());
X2 = FOREACH X1 GENERATE pid,SIZE(y) as numofcitan;
dump X2;
X3 = group X2 by numofcitan;
Histograms = foreach X3 GENERATE group as numofcitan,COUNT(X2.pid);
dump Histograms;
输入:
3858241 3634889,3557384,3398406,1324234,956203 3858242 3707004,3668705,3319261,1515701 3858243 3684611,3681785,3574238,3221341,3156927,3146465,2949611 3858244 2912700,2838924,2635670,2211676,17445,14040 3858245 3755824,3699969,3621837,3608095,3553737,3176316,2072303 3858246 3601877,3503079,3451067 3858247 3755824,3694819,3621837,2807431,1600859
结果:
(3858241,5)
(3858242,4)
(3858243,7)
(3858244,6)
(3858245,7)
(3858246,3)
(3858247,5)
直方图输出:
Number of citatatins,number of patients
(3,1)
(4,1)
(5,2)
(6,1)
(7,2)
答案 1 :(得分:0)
直方图是数据集的频率分布,并提供有关数据的统计信息。最常用的直方图类型是;等宽和等深,称为等高或高度平衡。
在数据库工具中,首选等深度直方图。例如:Oracle see
@Sravan K Reddy打算创建专利引用的等宽直方图。但是,为了创建直方图,必须对数据进行排序。这对于直方图构建至关重要。
如果您想创建大数据的直方图,请阅读this paper并检查Apache Pig Scripts。