首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

猪计算
EN

Stack Overflow用户
提问于 2014-10-09 06:35:57
回答 2查看 328关注 0票数 1

我在Pig中有一个数据集,如下所示:

代码语言:javascript
运行
复制
6009544 "NY"    6009545 "NY"
6009544 "NY"    6009545 "NY"
6009548 "NY"    6009546 "OR"
6009546 "OR"    6009546 "OR"
6009545 "NY"    6009546 "OR"
6009548 "NY"    6009547 "AZ"
6009547 "AZ"    6009547 "AZ"
6009547 "AZ"    6009548 "NY"
6009544 "NY"    6009548 "NY"

第一行是这样写的:“6009544专利起源于纽约,并引用了起源于纽约的6009545专利。”我试图为每个州寻找来自同一个州的专利的百分比。所以我的预期产出应该是

代码语言:javascript
运行
复制
NY: .5
OR: 1
AZ: .5

由于6项专利起源于纽约,3项引用了同样起源于纽约的专利。源自俄勒冈州的1项专利引用了同样起源于纽约的一项专利。在亚利桑那州的2项专利中,有1项引用了同样起源于亚利桑那州的专利。

有人能建议一个好的方法来在猪身上表演吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-09 07:50:05

你能试试这个吗?

代码语言:javascript
运行
复制
input.txt
6009544 "NY"    6009545 "NY"
6009544 "NY"    6009545 "NY"
6009548 "NY"    6009546 "OR"
6009546 "OR"    6009546 "OR"
6009545 "NY"    6009546 "OR"
6009548 "NY"    6009547 "AZ"
6009547 "AZ"    6009547 "AZ"
6009547 "AZ"    6009548 "NY"
6009544 "NY"    6009548 "NY"

PigScript:
A = LOAD 'input.txt' AS line;
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'(\\d+)\\s+"(\\w+)"\\s+(\\d+)\\s+"(\\w+)"')) AS (f1:int,f2:chararray,f3:int,f4:chararray);
C = GROUP B BY f2;
D = FOREACH C {
                FilterByPatent = FILTER B BY f2==f4;
                CityPatentCount = COUNT(B.f2);
                GENERATE group,((float)COUNT(FilterByPatent)/(float)CityPatentCount);
              }
DUMP D;

Output:
(AZ,0.5)
(NY,0.5)
(OR,1.0)
票数 1
EN

Stack Overflow用户

发布于 2015-06-23 20:01:59

我使用空格更改示例数据和单独的数据:

代码语言:javascript
运行
复制
A = load '/padata' using PigStorage(' ' ) as (pno:int,pcity:chararray,pci:int,pccity:chararray);

b = group A by pcity ;

r = foreach b {

               copcity= COUNT(A.pcity) ;

               samdata = FILTER A by pcity==pccity;

               csamdata = COUNT(samdata);

               percent = (float)csamdata/(float)copcity;

               generate group,percent ;

               }

dump r ; 

产出:-

代码语言:javascript
运行
复制
("AZ",0.5)

("NY",0.5)

("OR",1.0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26271820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档